
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

MagickBooleanType AnnotateImage(Image *image,DrawInfo *draw_info,ExceptionInfo *exception)

{
  double dVar1;
  double dVar2;
  double dVar3;
  int iVar4;
  char *string;
  AlignType AVar5;
  double dVar6;
  double dVar7;
  double dVar8;
  char cVar9;
  DrawInfo *draw_info_00;
  DrawInfo *draw_info_01;
  int *piVar10;
  DrawInfo *draw_info_02;
  size_t count;
  char *pcVar11;
  char *pcVar12;
  MagickBooleanType MVar13;
  int iVar14;
  PixelInfo *pPVar15;
  TypeMetric *pTVar16;
  PixelInfo *pPVar17;
  char *pcVar18;
  int in_GS_OFFSET;
  byte bVar19;
  int local_2188;
  undefined8 local_217c;
  int *local_2174;
  char *local_216c;
  size_t local_215c;
  int local_2154;
  ushort __cw;
  ushort __cwtmp;
  PointInfo offset;
  RectangleInfo geometry;
  GeometryInfo geometry_info;
  PixelInfo pixel;
  TypeMetric metrics;
  char color [4096];
  char primitive [4096];
  
  bVar19 = 0;
  iVar4 = *(int *)(in_GS_OFFSET + 0x14);
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,
                  "AnnotateImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);
  }
  if (draw_info == (DrawInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");
  }
  if (draw_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,
                  "AnnotateImage");
  }
  MVar13 = MagickFalse;
  if ((draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0'))
  goto LAB_00039fee;
  draw_info_00 = CloneDrawInfo((ImageInfo *)0x0,draw_info);
  string = draw_info_00->text;
  draw_info_00->text = (char *)0x0;
  draw_info_01 = CloneDrawInfo((ImageInfo *)0x0,draw_info);
  cVar9 = *string;
  if (cVar9 == '\0') {
    local_2174 = (int *)AcquireQuantumMemory(2,4);
    if (local_2174 == (int *)0x0) goto LAB_0003ae11;
    local_215c = 1;
LAB_0003a0a2:
    iVar14 = 0;
    pcVar11 = string;
    do {
      local_2174[iVar14] = (int)pcVar11;
      cVar9 = *pcVar11;
      pcVar18 = pcVar11 + 1;
      pcVar12 = pcVar18;
      if (cVar9 != '\0') {
        if ((cVar9 != '\n') && (cVar9 != '\r')) {
          do {
            pcVar11 = pcVar18;
            cVar9 = *pcVar11;
            pcVar12 = pcVar11 + 1;
            if (cVar9 == '\0') goto LAB_0003a0fa;
            pcVar18 = pcVar12;
          } while ((cVar9 != '\r') && (cVar9 != '\n'));
        }
        pcVar12 = pcVar18;
        if (cVar9 == '\r') {
          *pcVar11 = '\0';
          pcVar12 = pcVar18 + 1;
          pcVar11 = pcVar18;
        }
      }
LAB_0003a0fa:
      iVar14 = iVar14 + 1;
      *pcVar11 = '\0';
      pcVar11 = pcVar12;
    } while (iVar14 < (int)local_215c);
    piVar10 = local_2174 + local_215c;
  }
  else {
    local_215c = 1;
    pcVar11 = string;
    do {
      count = local_215c + 1;
      if (cVar9 == '\n') {
        count = local_215c + 2;
        local_215c = local_215c + 1;
      }
      pcVar11 = pcVar11 + 1;
      cVar9 = *pcVar11;
    } while (cVar9 != '\0');
    piVar10 = (int *)AcquireQuantumMemory(count,4);
    if (piVar10 == (int *)0x0) {
LAB_0003ae11:
      DestroyDrawInfo(draw_info_01);
      MVar13 = MagickFalse;
      DestroyDrawInfo(draw_info_00);
      DestroyString(string);
      goto LAB_00039fee;
    }
    local_2174 = piVar10;
    if (0 < (int)local_215c) goto LAB_0003a0a2;
  }
  *piVar10 = 0;
  SetGeometry(image,&geometry);
  SetGeometryInfo(&geometry_info);
  if (draw_info_01->geometry != (char *)0x0) {
    ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);
    ParseGeometry(draw_info_01->geometry,&geometry_info);
  }
  MVar13 = SetImageStorageClass(image,DirectClass,exception);
  if (MVar13 != MagickFalse) {
    if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {
      SetImageColorspace(image,sRGBColorspace,exception);
    }
    pTVar16 = &metrics;
    for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {
      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;
      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);
    }
    pcVar11 = (char *)*local_2174;
    if (pcVar11 == (char *)0x0) {
      MVar13 = MagickTrue;
    }
    else {
      local_2188 = 0;
      MVar13 = MagickTrue;
      do {
        if (*pcVar11 == '\0') goto LAB_0003a60a;
        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;
        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;
        CloneString(&draw_info_00->text,pcVar11);
        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||
           (draw_info_00->gravity != NorthWestGravity)) {
          GetTypeMetrics(image,draw_info_00,&metrics,exception);
        }
        local_2154 = (int)(longlong)
                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));
        iVar14 = local_2154;
        if (local_2154 == 0) {
          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);
          iVar14 = local_2154;
        }
        dVar3 = (double)local_2188;
        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))
        ;
        local_217c = (ulonglong)(uint)(local_2154 + iVar14);
        dVar8 = (double)local_217c;
        switch(draw_info_00->gravity) {
        case ForgetGravity:
        default:
          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;
          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;
          break;
        case NorthWestGravity:
          dVar2 = 1.0;
          if (geometry.width == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +
                     (metrics.descent + metrics.ascent) * dVar1;
          dVar2 = 1.0;
          if (geometry.height == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          offset.y = metrics.ascent * dVar1 +
                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;
          break;
        case NorthGravity:
          dVar2 = 1.0;
          if (geometry.width == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          offset.x = ((dVar1 * dVar3 * dVar8 +
                      dVar2 * (draw_info_01->affine).tx +
                      (double)geometry.width * (double)DAT_0029f124) -
                     (draw_info_01->affine).sx *
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;
          dVar2 = 1.0;
          if (geometry.height == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          offset.y = (metrics.ascent * dVar1 +
                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx * (double)DAT_0029f124;
          break;
        case NorthEastGravity:
          dVar2 = 1.0;
          if (geometry.width != 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          offset.x = (((dVar1 * dVar3 * dVar8 +
                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -
                      (draw_info_01->affine).sx *
                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +
                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;
          dVar2 = 1.0;
          if (geometry.height == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          offset.y = (metrics.ascent * dVar1 +
                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx;
          break;
        case WestGravity:
          dVar2 = 1.0;
          if (geometry.width == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;
          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +
                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;
          dVar2 = 1.0;
          if (geometry.height == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +
                     dVar1 * dVar3 * dVar8 +
                     dVar2 * (draw_info_01->affine).ty +
                     (double)geometry.height * (double)DAT_0029f124;
          break;
        case CenterGravity:
          dVar2 = 1.0;
          if (geometry.width == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;
          dVar6 = (double)DAT_0029f124;
          offset.x = dVar1 * dVar7 * dVar6 +
                     ((dVar1 * dVar3 * dVar8 +
                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -
                     (draw_info_01->affine).sx *
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);
          dVar2 = 1.0;
          if (geometry.height == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          dVar6 = (double)DAT_0029f124;
          offset.y = dVar7 * dVar1 * dVar6 +
                     ((dVar1 * dVar3 * dVar8 +
                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx * dVar6);
          break;
        case EastGravity:
          dVar2 = 1.0;
          if (geometry.width != 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;
          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +
                     ((dVar1 * dVar3 * dVar8 +
                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -
                     (draw_info_01->affine).sx *
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;
          dVar2 = 1.0;
          if (geometry.height == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +
                     ((dVar1 * dVar3 * dVar8 +
                      dVar2 * (draw_info_01->affine).ty +
                      (double)geometry.height * (double)DAT_0029f124) -
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx);
          break;
        case SouthWestGravity:
          dVar2 = 1.0;
          if (geometry.width == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -
                     dVar1 * ((double)local_215c - 1.0) * dVar8;
          dVar2 = 1.0;
          if (geometry.height != 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          dVar2 = dVar1 * dVar3 * dVar8 +
                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;
          dVar1 = ((double)local_215c - 1.0) * dVar1;
          goto LAB_0003a70e;
        case SouthGravity:
          dVar2 = 1.0;
          if (geometry.width == 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          dVar6 = (double)DAT_0029f124;
          offset.x = ((dVar1 * dVar3 * dVar8 +
                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -
                     (draw_info_01->affine).sx *
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -
                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;
          dVar2 = 1.0;
          if (geometry.height != 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).sy;
          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +
                  dVar1 * dVar3 * dVar8) -
                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                  (draw_info_01->affine).rx * (double)DAT_0029f124;
          dVar1 = ((double)local_215c - 1.0) * dVar1;
LAB_0003a70e:
          AVar5 = draw_info_00->align;
          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;
          goto joined_r0x0003a72a;
        case SouthEastGravity:
          dVar2 = 1.0;
          if (geometry.width != 0) {
            dVar2 = -1.0;
          }
          dVar1 = (draw_info_01->affine).ry;
          dVar6 = 1.0;
          offset.x = (((dVar1 * dVar3 * dVar8 +
                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -
                      (draw_info_01->affine).sx *
                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -
                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;
          if (geometry.height != 0) {
            dVar6 = -1.0;
          }
          dVar2 = (draw_info_01->affine).sy;
          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +
                       dVar2 * dVar3 * dVar8) -
                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +
                     metrics.descent;
        }
        AVar5 = draw_info_00->align;
joined_r0x0003a72a:
        if (AVar5 == CenterAlign) {
          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -
                     (draw_info_01->affine).sx *
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (double)DAT_0029f124;
          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx * (double)DAT_0029f124;
        }
        else if (AVar5 == RightAlign) {
          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -
                     (draw_info_01->affine).sx *
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);
          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -
                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx;
        }
        else if (AVar5 == LeftAlign) {
          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;
          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;
        }
        if ((draw_info->undercolor).alpha != 0.0) {
          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);
          pPVar15 = &draw_info->undercolor;
          pPVar17 = &draw_info_02->fill;
          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {
            pPVar17->storage_class = pPVar15->storage_class;
            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);
            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);
          }
          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;
          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =
               *(undefined4 *)((int)&(draw_info->affine).sx + 4);
          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;
          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =
               *(undefined4 *)((int)&(draw_info->affine).rx + 4);
          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;
          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =
               *(undefined4 *)((int)&(draw_info->affine).ry + 4);
          dVar3 = (draw_info->affine).ry;
          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;
          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =
               *(undefined4 *)((int)&(draw_info->affine).sy + 4);
          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;
          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =
               *(undefined4 *)((int)&(draw_info->affine).tx + 4);
          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;
          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;
          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);
          local_217c._0_4_ = SUB84(dVar8,0);
          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,
                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);
          CloneString(&draw_info_02->primitive,primitive);
          DrawImage(image,draw_info_02,exception);
          DestroyDrawInfo(draw_info_02);
        }
        local_216c = primitive;
        (draw_info_01->affine).tx = offset.x;
        (draw_info_01->affine).ty = offset.y;
        dVar3 = (draw_info_01->stroke).alpha;
        pPVar15 = &draw_info_01->fill;
        pPVar17 = &pixel;
        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {
          pPVar17->storage_class = pPVar15->storage_class;
          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);
          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);
        }
        if (dVar3 != 0.0) {
          pPVar15 = &draw_info_01->stroke;
          pPVar17 = &pixel;
          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {
            pPVar17->storage_class = pPVar15->storage_class;
            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);
            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);
          }
        }
        QueryColorname(image,&pixel,AllCompliance,color,exception);
        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,
                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,
                           metrics.width._0_4_,metrics.width._4_4_);
        if (draw_info_00->decorate == UnderlineDecoration) {
          (draw_info_01->affine).ty =
               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;
          CloneString(&draw_info_01->primitive,local_216c);
          DrawImage(image,draw_info_01,exception);
        }
        else if (draw_info_00->decorate == OverlineDecoration) {
          (draw_info_01->affine).ty =
               (draw_info_01->affine).ty -
               ((metrics.ascent + metrics.descent) - metrics.underline_position) *
               (draw_info->affine).sy;
          CloneString(&draw_info_01->primitive,local_216c);
          DrawImage(image,draw_info_01,exception);
        }
        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);
        if (MVar13 == MagickFalse) break;
        if (draw_info_00->decorate == LineThroughDecoration) {
          (draw_info_01->affine).ty =
               (draw_info_01->affine).ty -
               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *
               (draw_info->affine).sy * (double)DAT_0029f124;
          CloneString(&draw_info_01->primitive,local_216c);
          DrawImage(image,draw_info_01,exception);
        }
LAB_0003a60a:
        local_2188 = local_2188 + 1;
        pcVar11 = (char *)local_2174[local_2188];
      } while (pcVar11 != (char *)0x0);
    }
  }
  DestroyDrawInfo(draw_info_01);
  DestroyDrawInfo(draw_info_00);
  RelinquishMagickMemory(local_2174);
  DestroyString(string);
LAB_00039fee:
  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return MVar13;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int AnnotateImage(int param_1,int param_2,undefined4 param_3)

{
  double dVar1;
  char *pcVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  char cVar7;
  int iVar8;
  int iVar9;
  undefined4 *puVar10;
  uint uVar11;
  int iVar12;
  char *pcVar13;
  char *pcVar14;
  int iVar15;
  undefined4 *puVar16;
  char *pcVar17;
  int in_GS_OFFSET;
  byte bVar18;
  int local_2188;
  ulonglong local_217c;
  undefined4 *local_2174;
  undefined1 *local_216c;
  uint local_215c;
  int local_2154;
  double local_2134;
  double local_212c;
  uint local_2124;
  uint uStack_2120;
  undefined1 local_2114 [16];
  double local_2104;
  double local_20fc;
  undefined4 local_20e8 [20];
  undefined4 local_2098 [4];
  double local_2088;
  double local_2080;
  undefined4 local_2078;
  undefined4 uStack_2074;
  double local_2060;
  undefined4 local_2058;
  undefined4 local_2054;
  undefined4 local_2030;
  undefined4 local_202c;
  undefined1 local_2020 [4096];
  undefined1 local_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  bVar18 = 0;
  uStack_14 = 0x39f49;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,
                  "AnnotateImage");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,
                   param_1 + 0x318);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");
  }
  if (*(int *)(param_2 + 0x358) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,
                  "AnnotateImage");
  }
  iVar15 = 0;
  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||
     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;
  iVar8 = CloneDrawInfo(0,param_2);
  pcVar2 = *(char **)(iVar8 + 0x238);
  *(undefined4 *)(iVar8 + 0x238) = 0;
  iVar9 = CloneDrawInfo(0,param_2);
  cVar7 = *pcVar2;
  if (cVar7 == '\0') {
    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);
    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;
    local_215c = 1;
LAB_0003a0a2:
    iVar15 = 0;
    pcVar13 = pcVar2;
    do {
      local_2174[iVar15] = pcVar13;
      cVar7 = *pcVar13;
      pcVar17 = pcVar13 + 1;
      pcVar14 = pcVar17;
      if (cVar7 != '\0') {
        if ((cVar7 != '\n') && (cVar7 != '\r')) {
          do {
            pcVar13 = pcVar17;
            cVar7 = *pcVar13;
            pcVar14 = pcVar13 + 1;
            if (cVar7 == '\0') goto LAB_0003a0fa;
            pcVar17 = pcVar14;
          } while ((cVar7 != '\r') && (cVar7 != '\n'));
        }
        pcVar14 = pcVar17;
        if (cVar7 == '\r') {
          *pcVar13 = '\0';
          pcVar14 = pcVar17 + 1;
          pcVar13 = pcVar17;
        }
      }
LAB_0003a0fa:
      iVar15 = iVar15 + 1;
      *pcVar13 = '\0';
      pcVar13 = pcVar14;
    } while (iVar15 < (int)local_215c);
    puVar10 = local_2174 + local_215c;
  }
  else {
    local_215c = 1;
    pcVar13 = pcVar2;
    do {
      uVar11 = local_215c + 1;
      if (cVar7 == '\n') {
        uVar11 = local_215c + 2;
        local_215c = local_215c + 1;
      }
      pcVar13 = pcVar13 + 1;
      cVar7 = *pcVar13;
    } while (cVar7 != '\0');
    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);
    if (puVar10 == (undefined4 *)0x0) {
LAB_0003ae11:
      DestroyDrawInfo(iVar9);
      iVar15 = 0;
      DestroyDrawInfo(iVar8);
      DestroyString(pcVar2);
      goto LAB_00039fee;
    }
    local_2174 = puVar10;
    if (0 < (int)local_215c) goto LAB_0003a0a2;
  }
  *puVar10 = 0;
  SetGeometry(param_1,&local_2124);
  SetGeometryInfo(local_2114);
  if (*(int *)(iVar9 + 4) != 0) {
    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);
    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);
  }
  iVar15 = SetImageStorageClass(param_1,1,param_3);
  if (iVar15 != 0) {
    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {
      SetImageColorspace(param_1,0x17,param_3);
    }
    puVar10 = local_2098;
    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {
      *puVar10 = 0;
      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
    }
    pcVar13 = (char *)*local_2174;
    if (pcVar13 == (char *)0x0) {
      iVar15 = 1;
    }
    else {
      local_2188 = 0;
      iVar15 = 1;
      do {
        if (*pcVar13 == '\0') goto LAB_0003a60a;
        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);
        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);
        CloneString(iVar8 + 0x238,pcVar13);
        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {
          GetTypeMetrics(param_1,iVar8,local_2098,param_3);
        }
        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));
        iVar15 = local_2154;
        if (local_2154 == 0) {
          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));
          iVar15 = local_2154;
        }
        dVar1 = (double)local_2188;
        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))
        ;
        local_217c = (ulonglong)(uint)(local_2154 + iVar15);
        dVar6 = (double)local_217c;
        switch(*(undefined4 *)(iVar8 + 0x26c)) {
        case 0:
        default:
          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);
          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);
          break;
        case 1:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)
                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)
          ;
          break;
        case 2:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x38) +
                        (double)local_2124 * (double)DAT_0029f124) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *
                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)
          ;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)
                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *
                           (double)DAT_0029f124;
          break;
        case 3:
          dVar3 = 1.0;
          if (local_2124 != 0) {
            dVar3 = -1.0;
          }
          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -
                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +
                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)
                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);
          break;
        case 4:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;
          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +
                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6
          ;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                       dVar3 * *(double *)(iVar9 + 0x40) +
                       (double)uStack_2120 * (double)DAT_0029f124;
          break;
        case 5:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;
          dVar4 = (double)DAT_0029f124;
          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +
                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)
          ;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          dVar4 = (double)DAT_0029f124;
          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +
                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)
          ;
          break;
        case 6:
          dVar3 = 1.0;
          if (local_2124 != 0) {
            dVar3 = -1.0;
          }
          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;
          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +
                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +
                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x40) +
                        (double)uStack_2120 * (double)DAT_0029f124) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));
          break;
        case 7:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                       dVar3 * *(double *)(iVar9 + 0x38)) -
                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;
          dVar3 = 1.0;
          if (uStack_2120 != 0) {
            dVar3 = -1.0;
          }
          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);
          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);
          goto code_r0x0003a70e;
        case 8:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          dVar4 = (double)DAT_0029f124;
          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)
                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;
          dVar3 = 1.0;
          if (uStack_2120 != 0) {
            dVar3 = -1.0;
          }
          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +
                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -
                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *
                  (double)DAT_0029f124;
          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);
code_r0x0003a70e:
          iVar15 = *(int *)(iVar8 + 0x268);
          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;
          goto joined_r0x0003a72a;
        case 9:
          dVar3 = 1.0;
          if (local_2124 != 0) {
            dVar3 = -1.0;
          }
          dVar4 = 1.0;
          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -
                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -
                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;
          if (uStack_2120 != 0) {
            dVar4 = -1.0;
          }
          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +
                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -
                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -
                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;
        }
        iVar15 = *(int *)(iVar8 + 0x268);
joined_r0x0003a72a:
        if (iVar15 == 2) {
          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *
                       (double)DAT_0029f124;
          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *
                       (double)DAT_0029f124;
        }
        else if (iVar15 == 3) {
          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);
          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);
        }
        else if (iVar15 == 1) {
          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);
          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);
        }
        if (*(double *)(param_2 + 0x128) != 0.0) {
          iVar15 = CloneDrawInfo(0,0);
          puVar10 = (undefined4 *)(param_2 + 0xe8);
          puVar16 = (undefined4 *)(iVar15 + 0x48);
          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {
            *puVar16 = *puVar10;
            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
          }
          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);
          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);
          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);
          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);
          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);
          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);
          dVar1 = *(double *)(param_2 + 0x28);
          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);
          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);
          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);
          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);
          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;
          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);
          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6
                            );
          CloneString(iVar15,local_1020);
          DrawImage(param_1,iVar15,param_3);
          DestroyDrawInfo(iVar15);
        }
        local_216c = local_1020;
        *(double *)(iVar9 + 0x38) = local_2134;
        *(double *)(iVar9 + 0x40) = local_212c;
        dVar1 = *(double *)(iVar9 + 0xd8);
        puVar10 = (undefined4 *)(iVar9 + 0x48);
        puVar16 = local_20e8;
        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {
          *puVar16 = *puVar10;
          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
        }
        if (dVar1 != 0.0) {
          puVar10 = (undefined4 *)(iVar9 + 0x98);
          puVar16 = local_20e8;
          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {
            *puVar16 = *puVar10;
            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
          }
        }
        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);
        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,
                           local_2058,local_2054,local_2078,uStack_2074);
        if (*(int *)(iVar8 + 0x230) == 2) {
          *(double *)(iVar9 + 0x40) =
               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;
          CloneString(iVar9,local_216c);
          DrawImage(param_1,iVar9,param_3);
        }
        else if (*(int *)(iVar8 + 0x230) == 3) {
          *(double *)(iVar9 + 0x40) =
               *(double *)(iVar9 + 0x40) -
               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);
          CloneString(iVar9,local_216c);
          DrawImage(param_1,iVar9,param_3);
        }
        iVar15 = FUN_00039740(local_2098,param_3);
        if (iVar15 == 0) break;
        if (*(int *)(iVar8 + 0x230) == 4) {
          *(double *)(iVar9 + 0x40) =
               *(double *)(iVar9 + 0x40) -
               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *
               (double)DAT_0029f124;
          CloneString(iVar9,local_216c);
          DrawImage(param_1,iVar9,param_3);
        }
LAB_0003a60a:
        local_2188 = local_2188 + 1;
        pcVar13 = (char *)local_2174[local_2188];
      } while (pcVar13 != (char *)0x0);
    }
  }
  DestroyDrawInfo(iVar9);
  DestroyDrawInfo(iVar8);
  RelinquishMagickMemory(local_2174);
  DestroyString(pcVar2);
LAB_00039fee:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return iVar15;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x39f0b7
SUB ESP,0x218c
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x217c],EDI
XOR EDI,EDI
MOV ESI,dword ptr [ESP + 0x21a4]
MOV EAX,dword ptr [ESP + 0x21a0]
MOV dword ptr [ESP + 0x10],ESI
MOV ESI,dword ptr [ESP + 0x21a8]
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESP + 0x1c],ESI
TEST EAX,EAX
JZ 0x0003aec1
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [EAX + 0x3344],0xabacadab
JNZ 0x0003aea2
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x3328]
TEST EAX,EAX
JNZ 0x0003a380
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x0003af04
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX + 0x358],0xabacadab
JNZ 0x0003aee5
MOV EAX,dword ptr [ESP + 0x10]
XOR ESI,ESI
MOV EAX,dword ptr [EAX + 0x238]
TEST EAX,EAX
JZ 0x00039fee
CMP byte ptr [EAX],0x0
MOV ESI,0x1
JNZ 0x0003a010
MOV EBX,dword ptr [ESP + 0x217c]
XOR EBX,dword ptr GS:[0x14]
MOV EAX,ESI
JNZ 0x0003aee0
ADD ESP,0x218c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EDI,dword ptr [ESP + 0x18]
PUSH EDI
PUSH 0x0
CALL 0x00032340
MOV ESI,dword ptr [EAX + 0x238]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [EAX + 0x238],0x0
MOV dword ptr [ESP + 0x60],ESI
POP EBP
POP EAX
PUSH EDI
PUSH 0x0
CALL 0x00032340
ADD ESP,0x10
MOV EBP,EAX
MOVZX EAX,byte ptr [ESI]
TEST AL,AL
JZ 0x0003ae6c
MOV EDX,ESI
MOV ESI,0x1
NOP
LEA ESI,[ESI]
LEA ECX,[ESI + 0x1]
CMP AL,0xa
JNZ 0x0003a06e
LEA EAX,[ESI + 0x2]
MOV ESI,ECX
MOV ECX,EAX
ADD EDX,0x1
MOVZX EAX,byte ptr [EDX]
TEST AL,AL
JNZ 0x0003a060
MOV dword ptr [ESP + 0x40],ESI
SUB ESP,0x8
PUSH 0x4
PUSH ECX
CALL 0x000317b0
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003ae11
TEST ESI,ESI
MOV dword ptr [ESP + 0x14],ESI
MOV EAX,dword ptr [ESP + 0x28]
JLE 0x0003a115
MOV dword ptr [ESP + 0x20],EBP
MOV EDX,dword ptr [ESP + 0x50]
XOR ESI,ESI
MOV EBP,dword ptr [ESP + 0x28]
MOV dword ptr [EBP + ESI*0x4],EDX
MOVZX EAX,byte ptr [EDX]
LEA ECX,[EDX + 0x1]
MOV EDI,ECX
TEST AL,AL
JZ 0x0003a0f6
CMP AL,0xa
JZ 0x0003ac10
CMP AL,0xd
JNZ 0x0003a0e8
JMP 0x0003ac10
CMP AL,0xd
JZ 0x0003ac10
CMP AL,0xa
JZ 0x0003ac10
MOVZX EAX,byte ptr [ECX]
MOV EDX,ECX
LEA ECX,[ECX + 0x1]
MOV EDI,ECX
TEST AL,AL
JNZ 0x0003a0d8
MOV EDI,EDX
MOV EDX,ECX
ADD ESI,0x1
CMP ESI,dword ptr [ESP + 0x14]
MOV byte ptr [EDI],0x0
JL 0x0003a0b0
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x14]
MOV EBP,dword ptr [ESP + 0x20]
LEA EAX,[EAX + EDI*0x4]
SUB ESP,0x8
MOV dword ptr [EAX],0x0
LEA EDI,[ESP + 0x80]
PUSH EDI
PUSH dword ptr [ESP + 0x18]
CALL 0x00031350
POP ECX
LEA ESI,[ESP + 0x94]
PUSH ESI
CALL 0x000306e0
MOV EAX,dword ptr [EBP + 0x4]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003a164
PUSH dword ptr [ESP + 0x1c]
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x18]
CALL 0x00032e10
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [EBP + 0x4]
CALL 0x00031a50
ADD ESP,0x10
SUB ESP,0x4
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
PUSH dword ptr [ESP + 0x18]
CALL 0x00030bc0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0003a622
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,0x21
JZ 0x0003adf7
CMP EAX,0x3
JZ 0x0003adf7
LEA EDI,[ESP + 0x104]
XOR EAX,EAX
MOV ECX,0x1e
MOV dword ptr [ESP + 0x38],EDI
STOSD.REP ES:EDI
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0003ae98
MOV EDI,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x14],0x0
MOV ESI,0x1
ADD EDI,0x238
MOV dword ptr [ESP + 0x3c],EDI
LEA EDI,[ESP + 0xb4]
MOV dword ptr [ESP + 0x2c],EDI
LEA ESI,[ESI]
CMP byte ptr [EAX],0x0
JZ 0x0003a60a
MOV ESI,dword ptr [ESP + 0xc]
SUB ESP,0x8
FILD dword ptr [ESI + 0x208]
FSUBR qword ptr [ESP + 0xa0]
FSTP qword ptr [EBP + 0x38]
FILD dword ptr [ESI + 0x20c]
FSUBR qword ptr [ESP + 0xa8]
FSTP qword ptr [EBP + 0x40]
PUSH EAX
PUSH dword ptr [ESP + 0x48]
CALL 0x00031990
ADD ESP,0x10
FLDZ
FLD qword ptr [ESP + 0x124]
FUCOMIP ST0,ST1
FSTP ST0
JP 0x0003a236
JZ 0x0003a243
MOV EAX,dword ptr [ESP + 0x18]
CMP dword ptr [EAX + 0x26c],0x1
JZ 0x0003a25b
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x18]
CALL 0x00033020
ADD ESP,0x10
FLD qword ptr [ESP + 0x114]
FLD qword ptr [ESP + 0x11c]
FSUBR ST0,ST1
FADD dword ptr [EBX + 0xffec6124]
FNSTCW word ptr [ESP + 0x64]
MOVZX EAX,word ptr [ESP + 0x64]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x66],AX
FLDCW word ptr [ESP + 0x66]
FRNDINT
FLDCW word ptr [ESP + 0x64]
FNSTCW word ptr [ESP + 0x56]
FSTP qword ptr [ESP + 0x58]
FLD qword ptr [ESP + 0x58]
MOVZX EAX,word ptr [ESP + 0x56]
OR AH,0xc
MOV word ptr [ESP + 0x54],AX
FLDCW word ptr [ESP + 0x54]
FISTP qword ptr [ESP + 0x48]
FLDCW word ptr [ESP + 0x56]
MOV EAX,dword ptr [ESP + 0x48]
MOV ECX,EAX
TEST EAX,EAX
JNZ 0x0003a2de
MOV EAX,dword ptr [ESP + 0x10]
FLD qword ptr [EAX + 0x25c]
FLDCW word ptr [ESP + 0x54]
FISTP qword ptr [ESP + 0x48]
FLDCW word ptr [ESP + 0x56]
MOV EAX,dword ptr [ESP + 0x48]
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x10]
FLD dword ptr [EBX + 0xffec6124]
FADD qword ptr [EAX + 0x348]
FNSTCW word ptr [ESP + 0x64]
MOVZX EAX,word ptr [ESP + 0x64]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x66],AX
FLDCW word ptr [ESP + 0x66]
FRNDINT
FLDCW word ptr [ESP + 0x64]
FNSTCW word ptr [ESP + 0x56]
FILD dword ptr [ESP + 0x14]
FXCH
MOV dword ptr [ESP + 0x24],0x0
FSTP qword ptr [ESP + 0x58]
FLD qword ptr [ESP + 0x58]
MOVZX EDX,word ptr [ESP + 0x56]
OR DH,0xc
MOV word ptr [ESP + 0x54],DX
FLDCW word ptr [ESP + 0x54]
FISTP qword ptr [ESP + 0x48]
FLDCW word ptr [ESP + 0x56]
MOV EAX,dword ptr [ESP + 0x48]
ADD EAX,ECX
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x18]
FILD qword ptr [ESP + 0x20]
FSTP qword ptr [ESP + 0x20]
CMP dword ptr [EAX + 0x26c],0x9
JA 0x0003abdb
MOV EAX,dword ptr [EAX + 0x26c]
MOV ESI,dword ptr [EBX + EAX*0x4 + 0xffec5fc0]
ADD ESI,EBX
JMP ESI
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffedde4e]
PUSH EAX
LEA EAX,[EBX + 0xffec6090]
PUSH 0x108
PUSH EAX
LEA EAX,[EBX + 0xffec5bb5]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x00039fb4
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x268]
CMP EAX,0x2
JZ 0x0003a730
CMP EAX,0x3
JZ 0x0003ad68
CMP EAX,0x1
JNZ 0x0003a4c0
FLD qword ptr [EBP + 0x28]
FMUL ST1
FLD qword ptr [ESP + 0x20]
FMUL ST1
FXCH
FADD qword ptr [EBP + 0x38]
FSTP qword ptr [ESP + 0x68]
FXCH
FMUL qword ptr [EBP + 0x30]
FMULP
FADD qword ptr [EBP + 0x40]
FSTP qword ptr [ESP + 0x70]
JMP 0x0003a4c2
FSTP ST0
MOV EAX,dword ptr [ESP + 0x10]
FLDZ
FLD qword ptr [EAX + 0x128]
FUCOMIP ST0,ST1
FSTP ST0
JP 0x0003ac68
JNZ 0x0003ac68
LEA EAX,[ESP + 0x117c]
MOV dword ptr [ESP + 0x30],EAX
FLD qword ptr [ESP + 0x68]
LEA ESI,[EBP + 0x48]
MOV ECX,0x14
FSTP qword ptr [EBP + 0x38]
FLD qword ptr [ESP + 0x70]
FSTP qword ptr [EBP + 0x40]
FLDZ
FLD qword ptr [EBP + 0xd8]
MOV EDI,dword ptr [ESP + 0x2c]
MOVSD.REP ES:EDI,ESI
FUCOMIP ST0,ST1
FSTP ST0
JP 0x0003a515
JZ 0x0003a526
LEA ESI,[EBP + 0x98]
MOV ECX,0x14
MOV EDI,dword ptr [ESP + 0x2c]
MOVSD.REP ES:EDI,ESI
SUB ESP,0xc
PUSH dword ptr [ESP + 0x28]
LEA ESI,[ESP + 0x18c]
PUSH ESI
PUSH 0x7fffffff
PUSH dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x28]
PUSH EDI
CALL 0x00033390
LEA EAX,[EBX + 0xffec5f7c]
ADD ESP,0x20
PUSH dword ptr [ESP + 0x128]
PUSH dword ptr [ESP + 0x128]
PUSH dword ptr [ESP + 0x150]
PUSH dword ptr [ESP + 0x150]
PUSH ESI
PUSH EAX
PUSH 0x1000
MOV ESI,dword ptr [ESP + 0x4c]
PUSH ESI
CALL 0x000334e0
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x230]
CMP EAX,0x2
JZ 0x0003ac28
CMP EAX,0x3
JNZ 0x0003a5d6
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
FLD qword ptr [ESP + 0x11c]
FADD qword ptr [ESP + 0x124]
FSUB qword ptr [ESP + 0x144]
FMUL qword ptr [EAX + 0x30]
FSUBR qword ptr [EBP + 0x40]
FSTP qword ptr [EBP + 0x40]
PUSH ESI
PUSH EBP
CALL 0x00031990
ADD ESP,0xc
PUSH dword ptr [ESP + 0x20]
PUSH EBP
PUSH EDI
CALL 0x000334a0
ADD ESP,0x10
LEA ECX,[ESP + 0x68]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDX,EDI
CALL 0x00039740
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0003a622
CMP dword ptr [EDI + 0x230],0x4
JZ 0x0003ada8
ADD dword ptr [ESP + 0x14],0x1
MOV EDI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EDI + EAX*0x4]
TEST EAX,EAX
JNZ 0x0003a1e8
SUB ESP,0xc
PUSH EBP
CALL 0x00032b50
POP EAX
PUSH dword ptr [ESP + 0x24]
CALL 0x00032b50
POP EDX
PUSH dword ptr [ESP + 0x34]
CALL 0x00033ac8
POP ECX
PUSH dword ptr [ESP + 0x5c]
CALL 0x00032950
ADD ESP,0x10
JMP 0x00039fee
FLD qword ptr [ESP + 0x124]
FLD qword ptr [EBP + 0x28]
FMUL ST2
FLD qword ptr [ESP + 0x20]
FMUL ST1
FLD qword ptr [EBP + 0x38]
FADDP ST2,ST0
FLD qword ptr [EBP + 0x18]
FMUL ST3
FLD dword ptr [EBX + 0xffec6124]
FMUL ST1
FXCH
FSUBP ST3,ST0
FXCH ST2
FSTP qword ptr [ESP + 0x68]
FXCH ST3
FMUL qword ptr [EBP + 0x30]
FMULP ST3
FLD qword ptr [EBP + 0x40]
FADDP ST3,ST0
FXCH
FMUL qword ptr [EBP + 0x20]
FMULP
FSUBP
FSTP qword ptr [ESP + 0x70]
JMP 0x0003a4c2
FSTP ST1
JMP 0x0003abe1
FLD qword ptr [EBP + 0x28]
FMUL ST1
FLD qword ptr [ESP + 0x20]
FMUL ST1
FXCH
FADD qword ptr [EBP + 0x38]
FSTP qword ptr [ESP + 0x68]
FLD qword ptr [EBP + 0x30]
FMUL ST2
FMULP
FADD qword ptr [EBP + 0x40]
FSTP qword ptr [ESP + 0x70]
JMP 0x0003a478
CMP AL,0xd
JNZ 0x0003a0f6
MOV byte ptr [EDX],0x0
LEA EDX,[ECX + 0x1]
JMP 0x0003a0fa
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
FLD qword ptr [EAX + 0x30]
FMUL qword ptr [ESP + 0x144]
FSUBR qword ptr [EBP + 0x40]
FSTP qword ptr [EBP + 0x40]
PUSH dword ptr [ESP + 0x38]
PUSH EBP
CALL 0x00031990
ADD ESP,0xc
PUSH dword ptr [ESP + 0x20]
PUSH EBP
PUSH dword ptr [ESP + 0x18]
CALL 0x000334a0
ADD ESP,0x10
JMP 0x0003a5d6
SUB ESP,0x8
PUSH 0x0
PUSH 0x0
CALL 0x00032340
MOV ECX,0x14
FLD qword ptr [ESP + 0x124]
LEA EDI,[EAX + 0x48]
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x54],EDX
LEA ESI,[EAX + 0xe8]
MOVSD.REP ES:EDI,ESI
MOV EDI,EAX
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [EDX + 0x18],EAX
MOV EAX,dword ptr [EDI + 0x1c]
MOV dword ptr [EDX + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [EDX + 0x20],EAX
MOV EAX,dword ptr [EDI + 0x24]
MOV dword ptr [EDX + 0x24],EAX
MOV EAX,dword ptr [EDI + 0x28]
MOV dword ptr [EDX + 0x28],EAX
MOV EAX,dword ptr [EDI + 0x2c]
MOV dword ptr [EDX + 0x2c],EAX
MOV EAX,dword ptr [EDI + 0x30]
FLD qword ptr [EDI + 0x28]
FMUL ST1
FSUBR qword ptr [ESP + 0x78]
MOV dword ptr [EDX + 0x30],EAX
MOV EAX,dword ptr [EDI + 0x34]
MOV dword ptr [EDX + 0x34],EAX
MOV EAX,dword ptr [EDI + 0x38]
MOV dword ptr [EDX + 0x38],EAX
MOV EAX,dword ptr [EDI + 0x3c]
MOV dword ptr [EDX + 0x3c],EAX
LEA EAX,[EBX + 0xffec5cf6]
FSTP qword ptr [EDX + 0x38]
FMUL qword ptr [EDI + 0x30]
FSUBR qword ptr [ESP + 0x80]
ADD ESP,0xc
FSTP qword ptr [EDX + 0x40]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x17c]
PUSH dword ptr [ESP + 0x17c]
PUSH EAX
PUSH 0x1000
LEA EAX,[ESP + 0x1198]
MOV dword ptr [ESP + 0x4c],EAX
MOV EDI,EAX
PUSH EAX
CALL 0x000334e0
ADD ESP,0x18
PUSH EDI
MOV EDX,dword ptr [ESP + 0x50]
PUSH EDX
MOV dword ptr [ESP + 0x54],EDX
CALL 0x00031990
ADD ESP,0xc
PUSH dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x4c]
PUSH EDX
MOV dword ptr [ESP + 0x50],EDX
PUSH dword ptr [ESP + 0x18]
CALL 0x000334a0
MOV EDX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP],EDX
CALL 0x00032b50
ADD ESP,0x10
JMP 0x0003a4e9
FLD qword ptr [ESP + 0x124]
FLD qword ptr [EBP + 0x28]
FMUL ST2
FLD qword ptr [ESP + 0x20]
FMUL ST1
FXCH
FADD qword ptr [EBP + 0x38]
FLD qword ptr [EBP + 0x18]
FMUL ST3
FSUBP
FSTP qword ptr [ESP + 0x68]
FXCH ST2
FMUL qword ptr [EBP + 0x30]
FMULP ST2
FLD qword ptr [EBP + 0x40]
FADDP ST2,ST0
FMUL qword ptr [EBP + 0x20]
FSUBP
FSTP qword ptr [ESP + 0x70]
JMP 0x0003a4c2
FLD qword ptr [ESP + 0x20]
SUB ESP,0x8
FADD qword ptr [ESP + 0x144]
FLD qword ptr [ESP + 0x124]
MOV EAX,dword ptr [ESP + 0x18]
FADD ST0,ST0
FADDP
FMUL qword ptr [EAX + 0x30]
FMUL dword ptr [EBX + 0xffec6124]
FSUBR qword ptr [EBP + 0x40]
FSTP qword ptr [EBP + 0x40]
PUSH dword ptr [ESP + 0x38]
PUSH EBP
CALL 0x00031990
ADD ESP,0xc
PUSH dword ptr [ESP + 0x20]
PUSH EBP
PUSH dword ptr [ESP + 0x18]
CALL 0x000334a0
ADD ESP,0x10
JMP 0x0003a60a
SUB ESP,0x4
PUSH dword ptr [ESP + 0x20]
PUSH 0x17
PUSH dword ptr [ESP + 0x18]
CALL 0x000335f0
ADD ESP,0x10
JMP 0x0003a19c
SUB ESP,0xc
PUSH EBP
CALL 0x00032b50
POP ESI
XOR ESI,ESI
PUSH dword ptr [ESP + 0x24]
CALL 0x00032b50
POP EDI
PUSH dword ptr [ESP + 0x5c]
CALL 0x00032950
ADD ESP,0x10
JMP 0x00039fee
SUB ESP,0x8
PUSH 0x4
PUSH 0x2
CALL 0x000317b0
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003ae11
MOV dword ptr [ESP + 0x14],0x1
MOV dword ptr [ESP + 0x40],0x1
JMP 0x0003a0a2
MOV ESI,0x1
JMP 0x0003a622
LEA EAX,[EBX + 0xffec60a0]
PUSH EAX
LEA EAX,[EBX + 0xffec5bb5]
PUSH 0x106
PUSH EAX
LEA EAX,[EBX + 0xffed1338]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffec60a0]
PUSH EAX
LEA EAX,[EBX + 0xffec5bb5]
PUSH 0x105
PUSH EAX
LEA EAX,[EBX + 0xffede594]
PUSH EAX
CALL 0x000313d0
CALL 0x0029eab0
LEA EAX,[EBX + 0xffec60a0]
PUSH EAX
LEA EAX,[EBX + 0xffec5bb5]
PUSH 0x10a
PUSH EAX
LEA EAX,[EBX + 0xffec5e90]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffec60a0]
PUSH EAX
LEA EAX,[EBX + 0xffec5bb5]
PUSH 0x109
PUSH EAX
LEA EAX,[EBX + 0xffec5e4c]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint AnnotateImage(int param_1,int param_2,undefined4 param_3)\n\n{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return iVar15;\n}\n\n" comment (function_definition "int AnnotateImage(int param_1,int param_2,undefined4 param_3)\n\n{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return iVar15;\n}" primitive_type (function_declarator "AnnotateImage(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return iVar15;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "int local_2188;" primitive_type identifier ;) (declaration "ulonglong local_217c;" type_identifier identifier ;) (declaration "undefined4 *local_2174;" type_identifier (pointer_declarator "*local_2174" * identifier) ;) (declaration "undefined1 *local_216c;" type_identifier (pointer_declarator "*local_216c" * identifier) ;) (declaration "uint local_215c;" type_identifier identifier ;) (declaration "int local_2154;" primitive_type identifier ;) (declaration "double local_2134;" primitive_type identifier ;) (declaration "double local_212c;" primitive_type identifier ;) (declaration "uint local_2124;" type_identifier identifier ;) (declaration "uint uStack_2120;" type_identifier identifier ;) (declaration "undefined1 local_2114 [16];" type_identifier (array_declarator "local_2114 [16]" identifier [ number_literal ]) ;) (declaration "double local_2104;" primitive_type identifier ;) (declaration "double local_20fc;" primitive_type identifier ;) (declaration "undefined4 local_20e8 [20];" type_identifier (array_declarator "local_20e8 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 local_2098 [4];" type_identifier (array_declarator "local_2098 [4]" identifier [ number_literal ]) ;) (declaration "double local_2088;" primitive_type identifier ;) (declaration "double local_2080;" primitive_type identifier ;) (declaration "undefined4 local_2078;" type_identifier identifier ;) (declaration "undefined4 uStack_2074;" type_identifier identifier ;) (declaration "double local_2060;" primitive_type identifier ;) (declaration "undefined4 local_2058;" type_identifier identifier ;) (declaration "undefined4 local_2054;" type_identifier identifier ;) (declaration "undefined4 local_2030;" type_identifier identifier ;) (declaration "undefined4 local_202c;" type_identifier identifier ;) (declaration "undefined1 local_2020 [4096];" type_identifier (array_declarator "local_2020 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x39f49;" (assignment_expression "uStack_14 = 0x39f49" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/annotate.c"" " string_content ") , (string_literal ""AnnotateImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");" (call_expression "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" identifier (argument_list "("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" ( (string_literal ""draw_info != (DrawInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x358) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x358) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x358)" * (cast_expression "(int *)(param_2 + 0x358)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x358)" ( (binary_expression "param_2 + 0x358" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");" (call_expression "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" identifier (argument_list "("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" ( (string_literal ""draw_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;" if (parenthesized_expression "((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0'))" ( (binary_expression "(*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')" (parenthesized_expression "(*(char **)(param_2 + 0x238) == (char *)0x0)" ( (binary_expression "*(char **)(param_2 + 0x238) == (char *)0x0" (pointer_expression "*(char **)(param_2 + 0x238)" * (cast_expression "(char **)(param_2 + 0x238)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x238)" ( (binary_expression "param_2 + 0x238" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')" ( (comma_expression "iVar15 = 1, **(char **)(param_2 + 0x238) == '\0'" (assignment_expression "iVar15 = 1" identifier = number_literal) , (binary_expression "**(char **)(param_2 + 0x238) == '\0'" (pointer_expression "**(char **)(param_2 + 0x238)" * (pointer_expression "*(char **)(param_2 + 0x238)" * (cast_expression "(char **)(param_2 + 0x238)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x238)" ( (binary_expression "param_2 + 0x238" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00039fee;" goto statement_identifier ;)) (expression_statement "iVar8 = CloneDrawInfo(0,param_2);" (assignment_expression "iVar8 = CloneDrawInfo(0,param_2)" identifier = (call_expression "CloneDrawInfo(0,param_2)" identifier (argument_list "(0,param_2)" ( number_literal , identifier )))) ;) (expression_statement "pcVar2 = *(char **)(iVar8 + 0x238);" (assignment_expression "pcVar2 = *(char **)(iVar8 + 0x238)" identifier = (pointer_expression "*(char **)(iVar8 + 0x238)" * (cast_expression "(char **)(iVar8 + 0x238)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x238)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x238) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x238) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x238)" * (cast_expression "(undefined4 *)(iVar8 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x238)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = CloneDrawInfo(0,param_2);" (assignment_expression "iVar9 = CloneDrawInfo(0,param_2)" identifier = (call_expression "CloneDrawInfo(0,param_2)" identifier (argument_list "(0,param_2)" ( number_literal , identifier )))) ;) (expression_statement "cVar7 = *pcVar2;" (assignment_expression "cVar7 = *pcVar2" identifier = (pointer_expression "*pcVar2" * identifier)) ;) (if_statement "if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }" { (expression_statement "local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);" (assignment_expression "local_2174 = (undefined4 *)AcquireQuantumMemory(2,4)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(2,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(2,4)" identifier (argument_list "(2,4)" ( number_literal , number_literal ))))) ;) (if_statement "if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;" if (parenthesized_expression "(local_2174 == (undefined4 *)0x0)" ( (binary_expression "local_2174 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003ae11;" goto statement_identifier ;)) (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" identifier = number_literal) ;) (labeled_statement "LAB_0003a0a2:\n    iVar15 = 0;" statement_identifier : (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;)) (expression_statement "pcVar13 = pcVar2;" (assignment_expression "pcVar13 = pcVar2" identifier = identifier) ;) (do_statement "do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);" do (compound_statement "{\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    }" { (expression_statement "local_2174[iVar15] = pcVar13;" (assignment_expression "local_2174[iVar15] = pcVar13" (subscript_expression "local_2174[iVar15]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar17 = pcVar13 + 1;" (assignment_expression "pcVar17 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = pcVar17;" (assignment_expression "pcVar14 = pcVar17" identifier = identifier) ;) (if_statement "if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }" { (if_statement "if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }" if (parenthesized_expression "((cVar7 != '\n') && (cVar7 != '\r'))" ( (binary_expression "(cVar7 != '\n') && (cVar7 != '\r')" (parenthesized_expression "(cVar7 != '\n')" ( (binary_expression "cVar7 != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 != '\r')" ( (binary_expression "cVar7 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) ))) )) (compound_statement "{\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }" { (do_statement "do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));" do (compound_statement "{\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          }" { (expression_statement "pcVar13 = pcVar17;" (assignment_expression "pcVar13 = pcVar17" identifier = identifier) ;) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (if_statement "if (cVar7 == '\0') goto LAB_0003a0fa;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003a0fa;" goto statement_identifier ;)) (expression_statement "pcVar17 = pcVar14;" (assignment_expression "pcVar17 = pcVar14" identifier = identifier) ;) }) while (parenthesized_expression "((cVar7 != '\r') && (cVar7 != '\n'))" ( (binary_expression "(cVar7 != '\r') && (cVar7 != '\n')" (parenthesized_expression "(cVar7 != '\r')" ( (binary_expression "cVar7 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 != '\n')" ( (binary_expression "cVar7 != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) ))) )) ;) })) (expression_statement "pcVar14 = pcVar17;" (assignment_expression "pcVar14 = pcVar17" identifier = identifier) ;) (if_statement "if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }" if (parenthesized_expression "(cVar7 == '\r')" ( (binary_expression "cVar7 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }" { (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar14 = pcVar17 + 1;" (assignment_expression "pcVar14 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "pcVar13 = pcVar17;" (assignment_expression "pcVar13 = pcVar17" identifier = identifier) ;) })) })) (labeled_statement "LAB_0003a0fa:\n      iVar15 = iVar15 + 1;" statement_identifier : (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;)) (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar13 = pcVar14;" (assignment_expression "pcVar13 = pcVar14" identifier = identifier) ;) }) while (parenthesized_expression "(iVar15 < (int)local_215c)" ( (binary_expression "iVar15 < (int)local_215c" identifier < (cast_expression "(int)local_215c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "puVar10 = local_2174 + local_215c;" (assignment_expression "puVar10 = local_2174 + local_215c" identifier = (binary_expression "local_2174 + local_215c" identifier + identifier)) ;) }) (else_clause "else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" else (compound_statement "{\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" { (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" identifier = number_literal) ;) (expression_statement "pcVar13 = pcVar2;" (assignment_expression "pcVar13 = pcVar2" identifier = identifier) ;) (do_statement "do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');" do (compound_statement "{\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    }" { (expression_statement "uVar11 = local_215c + 1;" (assignment_expression "uVar11 = local_215c + 1" identifier = (binary_expression "local_215c + 1" identifier + number_literal)) ;) (if_statement "if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" if (parenthesized_expression "(cVar7 == '\n')" ( (binary_expression "cVar7 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" { (expression_statement "uVar11 = local_215c + 2;" (assignment_expression "uVar11 = local_215c + 2" identifier = (binary_expression "local_215c + 2" identifier + number_literal)) ;) (expression_statement "local_215c = local_215c + 1;" (assignment_expression "local_215c = local_215c + 1" identifier = (binary_expression "local_215c + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) }) while (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);" (assignment_expression "puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(uVar11,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar11,4)" identifier (argument_list "(uVar11,4)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }" if (parenthesized_expression "(puVar10 == (undefined4 *)0x0)" ( (binary_expression "puVar10 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }" { (labeled_statement "LAB_0003ae11:\n      DestroyDrawInfo(iVar9);" statement_identifier : (expression_statement "DestroyDrawInfo(iVar9);" (call_expression "DestroyDrawInfo(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;)) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "DestroyDrawInfo(iVar8);" (call_expression "DestroyDrawInfo(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "DestroyString(pcVar2);" (call_expression "DestroyString(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (goto_statement "goto LAB_00039fee;" goto statement_identifier ;) })) (expression_statement "local_2174 = puVar10;" (assignment_expression "local_2174 = puVar10" identifier = identifier) ;) (if_statement "if (0 < (int)local_215c) goto LAB_0003a0a2;" if (parenthesized_expression "(0 < (int)local_215c)" ( (binary_expression "0 < (int)local_215c" number_literal < (cast_expression "(int)local_215c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003a0a2;" goto statement_identifier ;)) }))) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "SetGeometry(param_1,&local_2124);" (call_expression "SetGeometry(param_1,&local_2124)" identifier (argument_list "(param_1,&local_2124)" ( identifier , (pointer_expression "&local_2124" & identifier) ))) ;) (expression_statement "SetGeometryInfo(local_2114);" (call_expression "SetGeometryInfo(local_2114)" identifier (argument_list "(local_2114)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 4) != 0)" ( (binary_expression "*(int *)(iVar9 + 4) != 0" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }" { (expression_statement "ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);" (call_expression "ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3)" identifier (argument_list "(param_1,*(int *)(iVar9 + 4),&local_2124,param_3)" ( identifier , (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) , (pointer_expression "&local_2124" & identifier) , identifier ))) ;) (expression_statement "ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);" (call_expression "ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114)" identifier (argument_list "(*(undefined4 *)(iVar9 + 4),local_2114)" ( (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) , identifier ))) ;) })) (expression_statement "iVar15 = SetImageStorageClass(param_1,1,param_3);" (assignment_expression "iVar15 = SetImageStorageClass(param_1,1,param_3)" identifier = (call_expression "SetImageStorageClass(param_1,1,param_3)" identifier (argument_list "(param_1,1,param_3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }" { (if_statement "if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }" if (parenthesized_expression "((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3))" ( (binary_expression "(*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)" (parenthesized_expression "(*(int *)(param_1 + 4) == 0x21)" ( (binary_expression "*(int *)(param_1 + 4) == 0x21" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(param_1 + 4) == 3)" ( (binary_expression "*(int *)(param_1 + 4) == 3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      SetImageColorspace(param_1,0x17,param_3);\n    }" { (expression_statement "SetImageColorspace(param_1,0x17,param_3);" (call_expression "SetImageColorspace(param_1,0x17,param_3)" identifier (argument_list "(param_1,0x17,param_3)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "puVar10 = local_2098;" (assignment_expression "puVar10 = local_2098" identifier = identifier) ;) (for_statement "for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }" for ( (assignment_expression "iVar15 = 0x1e" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }" { (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "pcVar13 = (char *)*local_2174;" (assignment_expression "pcVar13 = (char *)*local_2174" identifier = (cast_expression "(char *)*local_2174" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2174" * identifier))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar15 = 1;\n    }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" else (compound_statement "{\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" { (expression_statement "local_2188 = 0;" (assignment_expression "local_2188 = 0" identifier = number_literal) ;) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (do_statement "do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);" do (compound_statement "{\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      }" { (if_statement "if (*pcVar13 == '\0') goto LAB_0003a60a;" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003a60a;" goto statement_identifier ;)) (expression_statement "*(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);" (assignment_expression "*(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208)" (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))) = (binary_expression "local_2104 - (double)*(int *)(param_1 + 0x208)" identifier - (cast_expression "(double)*(int *)(param_1 + 0x208)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) ))))))) ;) (expression_statement "*(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);" (assignment_expression "*(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c)" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "local_20fc - (double)*(int *)(param_1 + 0x20c)" identifier - (cast_expression "(double)*(int *)(param_1 + 0x20c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0x20c)" * (cast_expression "(int *)(param_1 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20c)" ( (binary_expression "param_1 + 0x20c" identifier + number_literal) ))))))) ;) (expression_statement "CloneString(iVar8 + 0x238,pcVar13);" (call_expression "CloneString(iVar8 + 0x238,pcVar13)" identifier (argument_list "(iVar8 + 0x238,pcVar13)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) , identifier ))) ;) (if_statement "if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }" if (parenthesized_expression "(((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1))" ( (binary_expression "((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)" (parenthesized_expression "((double)CONCAT44(uStack_2074,local_2078) == 0.0)" ( (binary_expression "(double)CONCAT44(uStack_2074,local_2078) == 0.0" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar8 + 0x26c) != 1)" ( (binary_expression "*(int *)(iVar8 + 0x26c) != 1" (pointer_expression "*(int *)(iVar8 + 0x26c)" * (cast_expression "(int *)(iVar8 + 0x26c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x26c)" ( (binary_expression "iVar8 + 0x26c" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }" { (expression_statement "GetTypeMetrics(param_1,iVar8,local_2098,param_3);" (call_expression "GetTypeMetrics(param_1,iVar8,local_2098,param_3)" identifier (argument_list "(param_1,iVar8,local_2098,param_3)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" identifier = (cast_expression "(int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" identifier (argument_list "(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" ( (call_expression "ROUND((local_2088 - local_2080) + (double)DAT_0029f124)" identifier (argument_list "((local_2088 - local_2080) + (double)DAT_0029f124)" ( (binary_expression "(local_2088 - local_2080) + (double)DAT_0029f124" (parenthesized_expression "(local_2088 - local_2080)" ( (binary_expression "local_2088 - local_2080" identifier - identifier) )) + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )))))) ;) (expression_statement "iVar15 = local_2154;" (assignment_expression "iVar15 = local_2154" identifier = identifier) ;) (if_statement "if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }" if (parenthesized_expression "(local_2154 == 0)" ( (binary_expression "local_2154 == 0" identifier == number_literal) )) (compound_statement "{\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }" { (expression_statement "local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));" (assignment_expression "local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c))" identifier = (cast_expression "(int)(longlong)ROUND(*(double *)(param_2 + 0x25c))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(*(double *)(param_2 + 0x25c))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(param_2 + 0x25c))" identifier (argument_list "(*(double *)(param_2 + 0x25c))" ( (pointer_expression "*(double *)(param_2 + 0x25c)" * (cast_expression "(double *)(param_2 + 0x25c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x25c)" ( (binary_expression "param_2 + 0x25c" identifier + number_literal) )))) )))))) ;) (expression_statement "iVar15 = local_2154;" (assignment_expression "iVar15 = local_2154" identifier = identifier) ;) })) (expression_statement "dVar1 = (double)local_2188;" (assignment_expression "dVar1 = (double)local_2188" identifier = (cast_expression "(double)local_2188" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" identifier = (cast_expression "(int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" identifier (argument_list "(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" ( (call_expression "ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348))" identifier (argument_list "(DAT_0029f124 + (float)*(double *)(param_2 + 0x348))" ( (binary_expression "DAT_0029f124 + (float)*(double *)(param_2 + 0x348)" identifier + (cast_expression "(float)*(double *)(param_2 + 0x348)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x348)" * (cast_expression "(double *)(param_2 + 0x348)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x348)" ( (binary_expression "param_2 + 0x348" identifier + number_literal) )))))) ))) )))))) ;) (expression_statement "local_217c = (ulonglong)(uint)(local_2154 + iVar15);" (assignment_expression "local_217c = (ulonglong)(uint)(local_2154 + iVar15)" identifier = (call_expression "(ulonglong)(uint)(local_2154 + iVar15)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(local_2154 + iVar15)" ( (binary_expression "local_2154 + iVar15" identifier + identifier) )))) ;) (expression_statement "dVar6 = (double)local_217c;" (assignment_expression "dVar6 = (double)local_217c" identifier = (cast_expression "(double)local_217c" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (switch_statement "switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }" switch (parenthesized_expression "(*(undefined4 *)(iVar8 + 0x26c))" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x26c)" * (cast_expression "(undefined4 *)(iVar8 + 0x26c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x26c)" ( (binary_expression "iVar8 + 0x26c" identifier + number_literal) )))) )) (compound_statement "{\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }" { (case_statement "case 0:" case number_literal :) (case_statement "default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;" default : (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) ;) (expression_statement "local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);" (assignment_expression "local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40)" identifier = (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" ( (binary_expression "local_2080 + local_2088" identifier + identifier) )) * (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) ))))))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;" (assignment_expression "local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" identifier = (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;" (assignment_expression "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" identifier = (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124)" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124)" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(double)local_2124 * (double)DAT_0029f124" (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) + (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" ( (binary_expression "local_2080 + local_2088" identifier + identifier) )) * (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) ))))))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;" (assignment_expression "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" identifier = (binary_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (parenthesized_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       )" ( (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 != 0)" ( (binary_expression "local_2124 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;" (assignment_expression "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0" identifier = (binary_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0" (parenthesized_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28))" ( (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))))) )) + (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" ( (binary_expression "local_2080 + local_2088" identifier + identifier) )) * (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))))) )) - number_literal)) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);" (assignment_expression "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" identifier = (binary_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       )" ( (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;" (assignment_expression "local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124" identifier = (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30)" (binary_expression "(double)DAT_0029f124 * dVar4" (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "(double)uStack_2120 * (double)DAT_0029f124" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar5 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar5" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4)" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(double)local_2124 * dVar4" (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * identifier)) )))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;" (assignment_expression "local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" identifier = (binary_expression "dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" (binary_expression "dVar5 * *(double *)(iVar9 + 0x30) * dVar4" (binary_expression "dVar5 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier) + (parenthesized_expression "((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" ( (binary_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4)" ( (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "(double)uStack_2120 * dVar4" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 != 0)" ( (binary_expression "local_2124 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0" identifier = (binary_expression "(*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))))) ))) )) - number_literal)) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));" (assignment_expression "local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" identifier = (binary_expression "dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" (binary_expression "dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124" (binary_expression "dVar4 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (parenthesized_expression "((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" ( (binary_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124)" ( (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "(double)uStack_2120 * (double)DAT_0029f124" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 != 0)" ( (binary_expression "uStack_2120 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);" (assignment_expression "dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" identifier = (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))))) ;) (expression_statement "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);" (assignment_expression "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" identifier = (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))))) ;) (goto_statement "goto code_r0x0003a70e;" goto statement_identifier ;)) (case_statement "case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;" (assignment_expression "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" identifier = (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4)" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(double)local_2124 * dVar4" (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier) * identifier))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 != 0)" ( (binary_expression "uStack_2120 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;" (assignment_expression "dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" identifier = (binary_expression "((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (parenthesized_expression "((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6)" ( (binary_expression "(double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);" (assignment_expression "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" identifier = (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))))) ;) (labeled_statement "code_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);" statement_identifier : (expression_statement "iVar15 = *(int *)(iVar8 + 0x268);" (assignment_expression "iVar15 = *(int *)(iVar8 + 0x268)" identifier = (pointer_expression "*(int *)(iVar8 + 0x268)" * (cast_expression "(int *)(iVar8 + 0x268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x268)" ( (binary_expression "iVar8 + 0x268" identifier + number_literal) ))))) ;)) (expression_statement "local_212c = (dVar3 - dVar4 * dVar6) + local_2080;" (assignment_expression "local_212c = (dVar3 - dVar4 * dVar6) + local_2080" identifier = (binary_expression "(dVar3 - dVar4 * dVar6) + local_2080" (parenthesized_expression "(dVar3 - dVar4 * dVar6)" ( (binary_expression "dVar3 - dVar4 * dVar6" identifier - (binary_expression "dVar4 * dVar6" identifier * identifier)) )) + identifier)) ;) (goto_statement "goto joined_r0x0003a72a;" goto statement_identifier ;)) (case_statement "case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 != 0)" ( (binary_expression "local_2124 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = 1.0;" (assignment_expression "dVar4 = 1.0" identifier = number_literal) ;) (expression_statement "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;" (assignment_expression "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0" identifier = (binary_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0" (parenthesized_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6)" ( (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))))) )) - (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier)) )) - number_literal)) ;) (if_statement "if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 != 0)" ( (binary_expression "uStack_2120 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar4 = -1.0;\n          }" { (expression_statement "dVar4 = -1.0;" (assignment_expression "dVar4 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;" (assignment_expression "local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080" identifier = (binary_expression "((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080" (parenthesized_expression "((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6)" ( (binary_expression "(((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6" (parenthesized_expression "(((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" ( (binary_expression "((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6)" ( (binary_expression "(double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40)" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) + (binary_expression "dVar4 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))))) )) - (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier)) )) + identifier)) ;)) })) (expression_statement "iVar15 = *(int *)(iVar8 + 0x268);" (assignment_expression "iVar15 = *(int *)(iVar8 + 0x268)" identifier = (pointer_expression "*(int *)(iVar8 + 0x268)" * (cast_expression "(int *)(iVar8 + 0x268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x268)" ( (binary_expression "iVar8 + 0x268" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" statement_identifier : (if_statement "if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" if (parenthesized_expression "(iVar15 == 2)" ( (binary_expression "iVar15 == 2" identifier == number_literal) )) (compound_statement "{\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }" { (expression_statement "local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" identifier = (binary_expression "(*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6)" ( (binary_expression "*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))) + (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;" (assignment_expression "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" identifier = (binary_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6)" ( (binary_expression "*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) + (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) }) (else_clause "else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" else (if_statement "if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" if (parenthesized_expression "(iVar15 == 3)" ( (binary_expression "iVar15 == 3" identifier == number_literal) )) (compound_statement "{\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }" { (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" identifier = (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) ))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))))) ;) (expression_statement "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);" (assignment_expression "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" identifier = (binary_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6)" ( (binary_expression "*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) + (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))))) ;) }) (else_clause "else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" else (if_statement "if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" if (parenthesized_expression "(iVar15 == 1)" ( (binary_expression "iVar15 == 1" identifier == number_literal) )) (compound_statement "{\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" { (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) ;) (expression_statement "local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);" (assignment_expression "local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40)" identifier = (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40)" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) ;) }))))))) (if_statement "if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }" if (parenthesized_expression "(*(double *)(param_2 + 0x128) != 0.0)" ( (binary_expression "*(double *)(param_2 + 0x128) != 0.0" (pointer_expression "*(double *)(param_2 + 0x128)" * (cast_expression "(double *)(param_2 + 0x128)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x128)" ( (binary_expression "param_2 + 0x128" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }" { (expression_statement "iVar15 = CloneDrawInfo(0,0);" (assignment_expression "iVar15 = CloneDrawInfo(0,0)" identifier = (call_expression "CloneDrawInfo(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "puVar10 = (undefined4 *)(param_2 + 0xe8);" (assignment_expression "puVar10 = (undefined4 *)(param_2 + 0xe8)" identifier = (cast_expression "(undefined4 *)(param_2 + 0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe8)" ( (binary_expression "param_2 + 0xe8" identifier + number_literal) )))) ;) (expression_statement "puVar16 = (undefined4 *)(iVar15 + 0x48);" (assignment_expression "puVar16 = (undefined4 *)(iVar15 + 0x48)" identifier = (cast_expression "(undefined4 *)(iVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x48)" ( (binary_expression "iVar15 + 0x48" identifier + number_literal) )))) ;) (for_statement "for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "iVar12 = 0x14" identifier = number_literal) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);" (assignment_expression "*(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18)" (pointer_expression "*(undefined4 *)(iVar15 + 0x18)" * (cast_expression "(undefined4 *)(iVar15 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x1c)" * (cast_expression "(undefined4 *)(iVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);" (assignment_expression "*(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20)" (pointer_expression "*(undefined4 *)(iVar15 + 0x20)" * (cast_expression "(undefined4 *)(iVar15 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x20)" ( (binary_expression "iVar15 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);" (assignment_expression "*(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24)" (pointer_expression "*(undefined4 *)(iVar15 + 0x24)" * (cast_expression "(undefined4 *)(iVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x24)" ( (binary_expression "iVar15 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x24)" * (cast_expression "(undefined4 *)(param_2 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);" (assignment_expression "*(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28)" (pointer_expression "*(undefined4 *)(iVar15 + 0x28)" * (cast_expression "(undefined4 *)(iVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x28)" ( (binary_expression "iVar15 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x28)" * (cast_expression "(undefined4 *)(param_2 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x2c)" * (cast_expression "(undefined4 *)(iVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "dVar1 = *(double *)(param_2 + 0x28);" (assignment_expression "dVar1 = *(double *)(param_2 + 0x28)" identifier = (pointer_expression "*(double *)(param_2 + 0x28)" * (cast_expression "(double *)(param_2 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "*(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30)" (pointer_expression "*(undefined4 *)(iVar15 + 0x30)" * (cast_expression "(undefined4 *)(iVar15 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x30)" ( (binary_expression "iVar15 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x30)" * (cast_expression "(undefined4 *)(param_2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(iVar15 + 0x34)" * (cast_expression "(undefined4 *)(iVar15 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x34)" * (cast_expression "(undefined4 *)(param_2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "*(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38)" (pointer_expression "*(undefined4 *)(iVar15 + 0x38)" * (cast_expression "(undefined4 *)(iVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x38)" * (cast_expression "(undefined4 *)(param_2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x3c)" * (cast_expression "(undefined4 *)(iVar15 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" * (cast_expression "(undefined4 *)(param_2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;" (assignment_expression "*(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088" (pointer_expression "*(double *)(iVar15 + 0x38)" * (cast_expression "(double *)(iVar15 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) = (binary_expression "local_2134 - dVar1 * local_2088" identifier - (binary_expression "dVar1 * local_2088" identifier * identifier))) ;) (expression_statement "*(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);" (assignment_expression "*(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar15 + 0x40)" * (cast_expression "(double *)(iVar15 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x40)" ( (binary_expression "iVar15 + 0x40" identifier + number_literal) )))) = (binary_expression "local_212c - local_2088 * *(double *)(param_2 + 0x30)" identifier - (binary_expression "local_2088 * *(double *)(param_2 + 0x30)" identifier * (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );" (call_expression "FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            )" identifier (argument_list "(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            )" ( identifier , number_literal , (string_literal ""rectangle 0.0,0.0 %g,%g"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "CloneString(iVar15,local_1020);" (call_expression "CloneString(iVar15,local_1020)" identifier (argument_list "(iVar15,local_1020)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar15,param_3);" (call_expression "DrawImage(param_1,iVar15,param_3)" identifier (argument_list "(param_1,iVar15,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "DestroyDrawInfo(iVar15);" (call_expression "DestroyDrawInfo(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) })) (expression_statement "local_216c = local_1020;" (assignment_expression "local_216c = local_1020" identifier = identifier) ;) (expression_statement "*(double *)(iVar9 + 0x38) = local_2134;" (assignment_expression "*(double *)(iVar9 + 0x38) = local_2134" (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(double *)(iVar9 + 0x40) = local_212c;" (assignment_expression "*(double *)(iVar9 + 0x40) = local_212c" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "dVar1 = *(double *)(iVar9 + 0xd8);" (assignment_expression "dVar1 = *(double *)(iVar9 + 0xd8)" identifier = (pointer_expression "*(double *)(iVar9 + 0xd8)" * (cast_expression "(double *)(iVar9 + 0xd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xd8)" ( (binary_expression "iVar9 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x48);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x48)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x48)" ( (binary_expression "iVar9 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar16 = local_20e8;" (assignment_expression "puVar16 = local_20e8" identifier = identifier) ;) (for_statement "for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" for ( (assignment_expression "iVar15 = 0x14" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(dVar1 != 0.0)" ( (binary_expression "dVar1 != 0.0" identifier != number_literal) )) (compound_statement "{\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }" { (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x98);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x98)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x98)" ( (binary_expression "iVar9 + 0x98" identifier + number_literal) )))) ;) (expression_statement "puVar16 = local_20e8;" (assignment_expression "puVar16 = local_20e8" identifier = identifier) ;) (for_statement "for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "iVar15 = 0x14" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })) (expression_statement "QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);" (call_expression "QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3)" identifier (argument_list "(param_1,local_20e8,0x7fffffff,local_2020,param_3)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);" (call_expression "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074)" identifier (argument_list "(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074)" ( identifier , number_literal , (string_literal ""stroke %s stroke-width %g line 0,0 %g,0"" " string_content ") , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 2)" ( (binary_expression "*(int *)(iVar8 + 0x230) == 2" (pointer_expression "*(int *)(iVar8 + 0x230)" * (cast_expression "(int *)(iVar8 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" { (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) - (binary_expression "*(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) * identifier))) ;) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" identifier (argument_list "(iVar9,local_216c)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" identifier (argument_list "(param_1,iVar9,param_3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" else (if_statement "if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 3)" ( (binary_expression "*(int *)(iVar8 + 0x230) == 3" (pointer_expression "*(int *)(iVar8 + 0x230)" * (cast_expression "(int *)(iVar8 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" { (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) - (binary_expression "((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (parenthesized_expression "((local_2088 + local_2080) - local_2060)" ( (binary_expression "(local_2088 + local_2080) - local_2060" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - identifier) )) * (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" identifier (argument_list "(iVar9,local_216c)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" identifier (argument_list "(param_1,iVar9,param_3)" ( identifier , identifier , identifier ))) ;) })))) (expression_statement "iVar15 = FUN_00039740(local_2098,param_3);" (assignment_expression "iVar15 = FUN_00039740(local_2098,param_3)" identifier = (call_expression "FUN_00039740(local_2098,param_3)" identifier (argument_list "(local_2098,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x230) == 4" (pointer_expression "*(int *)(iVar8 + 0x230)" * (cast_expression "(int *)(iVar8 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" { (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) - (binary_expression "(local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (binary_expression "(local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30)" (parenthesized_expression "(local_2080 + local_2080 + dVar6 + local_2060)" ( (binary_expression "local_2080 + local_2080 + dVar6 + local_2060" (binary_expression "local_2080 + local_2080 + dVar6" (binary_expression "local_2080 + local_2080" identifier + identifier) + identifier) + identifier) )) * (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" identifier (argument_list "(iVar9,local_216c)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" identifier (argument_list "(param_1,iVar9,param_3)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0003a60a:\n        local_2188 = local_2188 + 1;" statement_identifier : (expression_statement "local_2188 = local_2188 + 1;" (assignment_expression "local_2188 = local_2188 + 1" identifier = (binary_expression "local_2188 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar13 = (char *)local_2174[local_2188];" (assignment_expression "pcVar13 = (char *)local_2174[local_2188]" identifier = (cast_expression "(char *)local_2174[local_2188]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_2174[local_2188]" identifier [ identifier ]))) ;) }) while (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) })) (expression_statement "DestroyDrawInfo(iVar9);" (call_expression "DestroyDrawInfo(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "DestroyDrawInfo(iVar8);" (call_expression "DestroyDrawInfo(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(local_2174);" (call_expression "RelinquishMagickMemory(local_2174)" identifier (argument_list "(local_2174)" ( identifier ))) ;) (expression_statement "DestroyString(pcVar2);" (call_expression "DestroyString(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (labeled_statement "LAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" { comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType AnnotateImage(Image *image,DrawInfo *draw_info,ExceptionInfo *exception)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  char *string;\n  AlignType AVar5;\n  double dVar6;\n  double dVar7;\n  double dVar8;\n  char cVar9;\n  DrawInfo *draw_info_00;\n  DrawInfo *draw_info_01;\n  int *piVar10;\n  DrawInfo *draw_info_02;\n  size_t count;\n  char *pcVar11;\n  char *pcVar12;\n  MagickBooleanType MVar13;\n  int iVar14;\n  PixelInfo *pPVar15;\n  TypeMetric *pTVar16;\n  PixelInfo *pPVar17;\n  char *pcVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  int local_2188;\n  undefined8 local_217c;\n  int *local_2174;\n  char *local_216c;\n  size_t local_215c;\n  int local_2154;\n  ushort __cw;\n  ushort __cwtmp;\n  PointInfo offset;\n  RectangleInfo geometry;\n  GeometryInfo geometry_info;\n  PixelInfo pixel;\n  TypeMetric metrics;\n  char color [4096];\n  char primitive [4096];\n  \n  bVar19 = 0;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);\n  }\n  if (draw_info == (DrawInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (draw_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  MVar13 = MagickFalse;\n  if ((draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0'))\n  goto LAB_00039fee;\n  draw_info_00 = CloneDrawInfo((ImageInfo *)0x0,draw_info);\n  string = draw_info_00->text;\n  draw_info_00->text = (char *)0x0;\n  draw_info_01 = CloneDrawInfo((ImageInfo *)0x0,draw_info);\n  cVar9 = *string;\n  if (cVar9 == '\0') {\n    local_2174 = (int *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (int *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar14 = 0;\n    pcVar11 = string;\n    do {\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    } while (iVar14 < (int)local_215c);\n    piVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar11 = string;\n    do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');\n    piVar10 = (int *)AcquireQuantumMemory(count,4);\n    if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }\n    local_2174 = piVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *piVar10 = 0;\n  SetGeometry(image,&geometry);\n  SetGeometryInfo(&geometry_info);\n  if (draw_info_01->geometry != (char *)0x0) {\n    ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);\n    ParseGeometry(draw_info_01->geometry,&geometry_info);\n  }\n  MVar13 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar13 != MagickFalse) {\n    if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }\n    pTVar16 = &metrics;\n    for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }\n    pcVar11 = (char *)*local_2174;\n    if (pcVar11 == (char *)0x0) {\n      MVar13 = MagickTrue;\n    }\n    else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(draw_info_01);\n  DestroyDrawInfo(draw_info_00);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(string);\nLAB_00039fee:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar13;\n}\n\n" comment comment comment comment comment comment comment comment comment (function_definition "MagickBooleanType AnnotateImage(Image *image,DrawInfo *draw_info,ExceptionInfo *exception)\n\n{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  char *string;\n  AlignType AVar5;\n  double dVar6;\n  double dVar7;\n  double dVar8;\n  char cVar9;\n  DrawInfo *draw_info_00;\n  DrawInfo *draw_info_01;\n  int *piVar10;\n  DrawInfo *draw_info_02;\n  size_t count;\n  char *pcVar11;\n  char *pcVar12;\n  MagickBooleanType MVar13;\n  int iVar14;\n  PixelInfo *pPVar15;\n  TypeMetric *pTVar16;\n  PixelInfo *pPVar17;\n  char *pcVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  int local_2188;\n  undefined8 local_217c;\n  int *local_2174;\n  char *local_216c;\n  size_t local_215c;\n  int local_2154;\n  ushort __cw;\n  ushort __cwtmp;\n  PointInfo offset;\n  RectangleInfo geometry;\n  GeometryInfo geometry_info;\n  PixelInfo pixel;\n  TypeMetric metrics;\n  char color [4096];\n  char primitive [4096];\n  \n  bVar19 = 0;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);\n  }\n  if (draw_info == (DrawInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (draw_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  MVar13 = MagickFalse;\n  if ((draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0'))\n  goto LAB_00039fee;\n  draw_info_00 = CloneDrawInfo((ImageInfo *)0x0,draw_info);\n  string = draw_info_00->text;\n  draw_info_00->text = (char *)0x0;\n  draw_info_01 = CloneDrawInfo((ImageInfo *)0x0,draw_info);\n  cVar9 = *string;\n  if (cVar9 == '\0') {\n    local_2174 = (int *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (int *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar14 = 0;\n    pcVar11 = string;\n    do {\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    } while (iVar14 < (int)local_215c);\n    piVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar11 = string;\n    do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');\n    piVar10 = (int *)AcquireQuantumMemory(count,4);\n    if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }\n    local_2174 = piVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *piVar10 = 0;\n  SetGeometry(image,&geometry);\n  SetGeometryInfo(&geometry_info);\n  if (draw_info_01->geometry != (char *)0x0) {\n    ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);\n    ParseGeometry(draw_info_01->geometry,&geometry_info);\n  }\n  MVar13 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar13 != MagickFalse) {\n    if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }\n    pTVar16 = &metrics;\n    for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }\n    pcVar11 = (char *)*local_2174;\n    if (pcVar11 == (char *)0x0) {\n      MVar13 = MagickTrue;\n    }\n    else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(draw_info_01);\n  DestroyDrawInfo(draw_info_00);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(string);\nLAB_00039fee:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar13;\n}" type_identifier (function_declarator "AnnotateImage(Image *image,DrawInfo *draw_info,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,DrawInfo *draw_info,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 "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  char *string;\n  AlignType AVar5;\n  double dVar6;\n  double dVar7;\n  double dVar8;\n  char cVar9;\n  DrawInfo *draw_info_00;\n  DrawInfo *draw_info_01;\n  int *piVar10;\n  DrawInfo *draw_info_02;\n  size_t count;\n  char *pcVar11;\n  char *pcVar12;\n  MagickBooleanType MVar13;\n  int iVar14;\n  PixelInfo *pPVar15;\n  TypeMetric *pTVar16;\n  PixelInfo *pPVar17;\n  char *pcVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  int local_2188;\n  undefined8 local_217c;\n  int *local_2174;\n  char *local_216c;\n  size_t local_215c;\n  int local_2154;\n  ushort __cw;\n  ushort __cwtmp;\n  PointInfo offset;\n  RectangleInfo geometry;\n  GeometryInfo geometry_info;\n  PixelInfo pixel;\n  TypeMetric metrics;\n  char color [4096];\n  char primitive [4096];\n  \n  bVar19 = 0;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);\n  }\n  if (draw_info == (DrawInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (draw_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  MVar13 = MagickFalse;\n  if ((draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0'))\n  goto LAB_00039fee;\n  draw_info_00 = CloneDrawInfo((ImageInfo *)0x0,draw_info);\n  string = draw_info_00->text;\n  draw_info_00->text = (char *)0x0;\n  draw_info_01 = CloneDrawInfo((ImageInfo *)0x0,draw_info);\n  cVar9 = *string;\n  if (cVar9 == '\0') {\n    local_2174 = (int *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (int *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar14 = 0;\n    pcVar11 = string;\n    do {\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    } while (iVar14 < (int)local_215c);\n    piVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar11 = string;\n    do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');\n    piVar10 = (int *)AcquireQuantumMemory(count,4);\n    if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }\n    local_2174 = piVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *piVar10 = 0;\n  SetGeometry(image,&geometry);\n  SetGeometryInfo(&geometry_info);\n  if (draw_info_01->geometry != (char *)0x0) {\n    ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);\n    ParseGeometry(draw_info_01->geometry,&geometry_info);\n  }\n  MVar13 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar13 != MagickFalse) {\n    if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }\n    pTVar16 = &metrics;\n    for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }\n    pcVar11 = (char *)*local_2174;\n    if (pcVar11 == (char *)0x0) {\n      MVar13 = MagickTrue;\n    }\n    else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(draw_info_01);\n  DestroyDrawInfo(draw_info_00);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(string);\nLAB_00039fee:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar13;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *string;" primitive_type (pointer_declarator "*string" * identifier) ;) (declaration "AlignType AVar5;" type_identifier identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "double dVar7;" primitive_type identifier ;) (declaration "double dVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "DrawInfo *draw_info_00;" type_identifier (pointer_declarator "*draw_info_00" * identifier) ;) (declaration "DrawInfo *draw_info_01;" type_identifier (pointer_declarator "*draw_info_01" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "DrawInfo *draw_info_02;" type_identifier (pointer_declarator "*draw_info_02" * identifier) ;) (declaration "size_t count;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "MagickBooleanType MVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "PixelInfo *pPVar15;" type_identifier (pointer_declarator "*pPVar15" * identifier) ;) (declaration "TypeMetric *pTVar16;" type_identifier (pointer_declarator "*pTVar16" * identifier) ;) (declaration "PixelInfo *pPVar17;" type_identifier (pointer_declarator "*pPVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "int local_2188;" primitive_type identifier ;) (declaration "undefined8 local_217c;" type_identifier identifier ;) (declaration "int *local_2174;" primitive_type (pointer_declarator "*local_2174" * identifier) ;) (declaration "char *local_216c;" primitive_type (pointer_declarator "*local_216c" * identifier) ;) (declaration "size_t local_215c;" primitive_type identifier ;) (declaration "int local_2154;" primitive_type identifier ;) (declaration "ushort __cw;" type_identifier identifier ;) (declaration "ushort __cwtmp;" type_identifier identifier ;) (declaration "PointInfo offset;" type_identifier identifier ;) (declaration "RectangleInfo geometry;" type_identifier identifier ;) (declaration "GeometryInfo geometry_info;" type_identifier identifier ;) (declaration "PixelInfo pixel;" type_identifier identifier ;) (declaration "TypeMetric metrics;" type_identifier identifier ;) (declaration "char color [4096];" primitive_type (array_declarator "color [4096]" identifier [ number_literal ]) ;) (declaration "char primitive [4096];" primitive_type (array_declarator "primitive [4096]" identifier [ number_literal ]) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar4 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename)" identifier (argument_list "(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",image->filename)" ( identifier , (string_literal ""MagickCore/annotate.c"" " string_content ") , (string_literal ""AnnotateImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (draw_info == (DrawInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" if (parenthesized_expression "(draw_info == (DrawInfo *)0x0)" ( (binary_expression "draw_info == (DrawInfo *)0x0" identifier == (cast_expression "(DrawInfo *)0x0" ( (type_descriptor "DrawInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");" (call_expression "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" identifier (argument_list "("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" ( (string_literal ""draw_info != (DrawInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (draw_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" if (parenthesized_expression "(draw_info->signature != 0xabacadab)" ( (binary_expression "draw_info->signature != 0xabacadab" (field_expression "draw_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" { comment (expression_statement "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");" (call_expression "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" identifier (argument_list "("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" ( (string_literal ""draw_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (expression_statement "MVar13 = MagickFalse;" (assignment_expression "MVar13 = MagickFalse" identifier = identifier) ;) (if_statement "if ((draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0'))\n  goto LAB_00039fee;" if (parenthesized_expression "((draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0'))" ( (binary_expression "(draw_info->text == (char *)0x0) || (MVar13 = MagickTrue, *draw_info->text == '\0')" (parenthesized_expression "(draw_info->text == (char *)0x0)" ( (binary_expression "draw_info->text == (char *)0x0" (field_expression "draw_info->text" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(MVar13 = MagickTrue, *draw_info->text == '\0')" ( (comma_expression "MVar13 = MagickTrue, *draw_info->text == '\0'" (assignment_expression "MVar13 = MagickTrue" identifier = identifier) , (binary_expression "*draw_info->text == '\0'" (pointer_expression "*draw_info->text" * (field_expression "draw_info->text" identifier -> field_identifier)) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00039fee;" goto statement_identifier ;)) (expression_statement "draw_info_00 = CloneDrawInfo((ImageInfo *)0x0,draw_info);" (assignment_expression "draw_info_00 = CloneDrawInfo((ImageInfo *)0x0,draw_info)" identifier = (call_expression "CloneDrawInfo((ImageInfo *)0x0,draw_info)" identifier (argument_list "((ImageInfo *)0x0,draw_info)" ( (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "string = draw_info_00->text;" (assignment_expression "string = draw_info_00->text" identifier = (field_expression "draw_info_00->text" identifier -> field_identifier)) ;) (expression_statement "draw_info_00->text = (char *)0x0;" (assignment_expression "draw_info_00->text = (char *)0x0" (field_expression "draw_info_00->text" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "draw_info_01 = CloneDrawInfo((ImageInfo *)0x0,draw_info);" (assignment_expression "draw_info_01 = CloneDrawInfo((ImageInfo *)0x0,draw_info)" identifier = (call_expression "CloneDrawInfo((ImageInfo *)0x0,draw_info)" identifier (argument_list "((ImageInfo *)0x0,draw_info)" ( (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "cVar9 = *string;" (assignment_expression "cVar9 = *string" identifier = (pointer_expression "*string" * identifier)) ;) (if_statement "if (cVar9 == '\0') {\n    local_2174 = (int *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (int *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar14 = 0;\n    pcVar11 = string;\n    do {\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    } while (iVar14 < (int)local_215c);\n    piVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar11 = string;\n    do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');\n    piVar10 = (int *)AcquireQuantumMemory(count,4);\n    if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }\n    local_2174 = piVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_2174 = (int *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (int *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar14 = 0;\n    pcVar11 = string;\n    do {\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    } while (iVar14 < (int)local_215c);\n    piVar10 = local_2174 + local_215c;\n  }" { (expression_statement "local_2174 = (int *)AcquireQuantumMemory(2,4);" (assignment_expression "local_2174 = (int *)AcquireQuantumMemory(2,4)" identifier = (cast_expression "(int *)AcquireQuantumMemory(2,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(2,4)" identifier (argument_list "(2,4)" ( number_literal , number_literal ))))) ;) (if_statement "if (local_2174 == (int *)0x0) goto LAB_0003ae11;" if (parenthesized_expression "(local_2174 == (int *)0x0)" ( (binary_expression "local_2174 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003ae11;" goto statement_identifier ;)) (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" identifier = number_literal) ;) (labeled_statement "LAB_0003a0a2:\n    iVar14 = 0;" statement_identifier : (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;)) (expression_statement "pcVar11 = string;" (assignment_expression "pcVar11 = string" identifier = identifier) ;) (do_statement "do {\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    } while (iVar14 < (int)local_215c);" do (compound_statement "{\n      local_2174[iVar14] = (int)pcVar11;\n      cVar9 = *pcVar11;\n      pcVar18 = pcVar11 + 1;\n      pcVar12 = pcVar18;\n      if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }\nLAB_0003a0fa:\n      iVar14 = iVar14 + 1;\n      *pcVar11 = '\0';\n      pcVar11 = pcVar12;\n    }" { (expression_statement "local_2174[iVar14] = (int)pcVar11;" (assignment_expression "local_2174[iVar14] = (int)pcVar11" (subscript_expression "local_2174[iVar14]" identifier [ identifier ]) = (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar9 = *pcVar11;" (assignment_expression "cVar9 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar18 = pcVar11 + 1;" (assignment_expression "pcVar18 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar12 = pcVar18;" (assignment_expression "pcVar12 = pcVar18" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') {\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }\n        pcVar12 = pcVar18;\n        if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }\n      }" { (if_statement "if ((cVar9 != '\n') && (cVar9 != '\r')) {\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }" if (parenthesized_expression "((cVar9 != '\n') && (cVar9 != '\r'))" ( (binary_expression "(cVar9 != '\n') && (cVar9 != '\r')" (parenthesized_expression "(cVar9 != '\n')" ( (binary_expression "cVar9 != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar9 != '\r')" ( (binary_expression "cVar9 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) ))) )) (compound_statement "{\n          do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));\n        }" { (do_statement "do {\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          } while ((cVar9 != '\r') && (cVar9 != '\n'));" do (compound_statement "{\n            pcVar11 = pcVar18;\n            cVar9 = *pcVar11;\n            pcVar12 = pcVar11 + 1;\n            if (cVar9 == '\0') goto LAB_0003a0fa;\n            pcVar18 = pcVar12;\n          }" { (expression_statement "pcVar11 = pcVar18;" (assignment_expression "pcVar11 = pcVar18" identifier = identifier) ;) (expression_statement "cVar9 = *pcVar11;" (assignment_expression "cVar9 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar12 = pcVar11 + 1;" (assignment_expression "pcVar12 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (if_statement "if (cVar9 == '\0') goto LAB_0003a0fa;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003a0fa;" goto statement_identifier ;)) (expression_statement "pcVar18 = pcVar12;" (assignment_expression "pcVar18 = pcVar12" identifier = identifier) ;) }) while (parenthesized_expression "((cVar9 != '\r') && (cVar9 != '\n'))" ( (binary_expression "(cVar9 != '\r') && (cVar9 != '\n')" (parenthesized_expression "(cVar9 != '\r')" ( (binary_expression "cVar9 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar9 != '\n')" ( (binary_expression "cVar9 != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) ))) )) ;) })) (expression_statement "pcVar12 = pcVar18;" (assignment_expression "pcVar12 = pcVar18" identifier = identifier) ;) (if_statement "if (cVar9 == '\r') {\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }" if (parenthesized_expression "(cVar9 == '\r')" ( (binary_expression "cVar9 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n          *pcVar11 = '\0';\n          pcVar12 = pcVar18 + 1;\n          pcVar11 = pcVar18;\n        }" { (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar12 = pcVar18 + 1;" (assignment_expression "pcVar12 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = pcVar18;" (assignment_expression "pcVar11 = pcVar18" identifier = identifier) ;) })) })) (labeled_statement "LAB_0003a0fa:\n      iVar14 = iVar14 + 1;" statement_identifier : (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;)) (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11 = pcVar12;" (assignment_expression "pcVar11 = pcVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar14 < (int)local_215c)" ( (binary_expression "iVar14 < (int)local_215c" identifier < (cast_expression "(int)local_215c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "piVar10 = local_2174 + local_215c;" (assignment_expression "piVar10 = local_2174 + local_215c" identifier = (binary_expression "local_2174 + local_215c" identifier + identifier)) ;) }) (else_clause "else {\n    local_215c = 1;\n    pcVar11 = string;\n    do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');\n    piVar10 = (int *)AcquireQuantumMemory(count,4);\n    if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }\n    local_2174 = piVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" else (compound_statement "{\n    local_215c = 1;\n    pcVar11 = string;\n    do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');\n    piVar10 = (int *)AcquireQuantumMemory(count,4);\n    if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }\n    local_2174 = piVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" { (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" identifier = number_literal) ;) (expression_statement "pcVar11 = string;" (assignment_expression "pcVar11 = string" identifier = identifier) ;) (do_statement "do {\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    } while (cVar9 != '\0');" do (compound_statement "{\n      count = local_215c + 1;\n      if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar11 = pcVar11 + 1;\n      cVar9 = *pcVar11;\n    }" { (expression_statement "count = local_215c + 1;" (assignment_expression "count = local_215c + 1" identifier = (binary_expression "local_215c + 1" identifier + number_literal)) ;) (if_statement "if (cVar9 == '\n') {\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" if (parenthesized_expression "(cVar9 == '\n')" ( (binary_expression "cVar9 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        count = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" { (expression_statement "count = local_215c + 2;" (assignment_expression "count = local_215c + 2" identifier = (binary_expression "local_215c + 2" identifier + number_literal)) ;) (expression_statement "local_215c = local_215c + 1;" (assignment_expression "local_215c = local_215c + 1" identifier = (binary_expression "local_215c + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar9 = *pcVar11;" (assignment_expression "cVar9 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) }) while (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "piVar10 = (int *)AcquireQuantumMemory(count,4);" (assignment_expression "piVar10 = (int *)AcquireQuantumMemory(count,4)" identifier = (cast_expression "(int *)AcquireQuantumMemory(count,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(count,4)" identifier (argument_list "(count,4)" ( identifier , number_literal ))))) ;) (if_statement "if (piVar10 == (int *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);\n      MVar13 = MagickFalse;\n      DestroyDrawInfo(draw_info_00);\n      DestroyString(string);\n      goto LAB_00039fee;\n    }" { (labeled_statement "LAB_0003ae11:\n      DestroyDrawInfo(draw_info_01);" statement_identifier : (expression_statement "DestroyDrawInfo(draw_info_01);" (call_expression "DestroyDrawInfo(draw_info_01)" identifier (argument_list "(draw_info_01)" ( identifier ))) ;)) (expression_statement "MVar13 = MagickFalse;" (assignment_expression "MVar13 = MagickFalse" identifier = identifier) ;) (expression_statement "DestroyDrawInfo(draw_info_00);" (call_expression "DestroyDrawInfo(draw_info_00)" identifier (argument_list "(draw_info_00)" ( identifier ))) ;) (expression_statement "DestroyString(string);" (call_expression "DestroyString(string)" identifier (argument_list "(string)" ( identifier ))) ;) (goto_statement "goto LAB_00039fee;" goto statement_identifier ;) })) (expression_statement "local_2174 = piVar10;" (assignment_expression "local_2174 = piVar10" identifier = identifier) ;) (if_statement "if (0 < (int)local_215c) goto LAB_0003a0a2;" if (parenthesized_expression "(0 < (int)local_215c)" ( (binary_expression "0 < (int)local_215c" number_literal < (cast_expression "(int)local_215c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003a0a2;" goto statement_identifier ;)) }))) (expression_statement "*piVar10 = 0;" (assignment_expression "*piVar10 = 0" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (expression_statement "SetGeometry(image,&geometry);" (call_expression "SetGeometry(image,&geometry)" identifier (argument_list "(image,&geometry)" ( identifier , (pointer_expression "&geometry" & identifier) ))) ;) (expression_statement "SetGeometryInfo(&geometry_info);" (call_expression "SetGeometryInfo(&geometry_info)" identifier (argument_list "(&geometry_info)" ( (pointer_expression "&geometry_info" & identifier) ))) ;) (if_statement "if (draw_info_01->geometry != (char *)0x0) {\n    ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);\n    ParseGeometry(draw_info_01->geometry,&geometry_info);\n  }" if (parenthesized_expression "(draw_info_01->geometry != (char *)0x0)" ( (binary_expression "draw_info_01->geometry != (char *)0x0" (field_expression "draw_info_01->geometry" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);\n    ParseGeometry(draw_info_01->geometry,&geometry_info);\n  }" { (expression_statement "ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception);" (call_expression "ParsePageGeometry(image,draw_info_01->geometry,&geometry,exception)" identifier (argument_list "(image,draw_info_01->geometry,&geometry,exception)" ( identifier , (field_expression "draw_info_01->geometry" identifier -> field_identifier) , (pointer_expression "&geometry" & identifier) , identifier ))) ;) (expression_statement "ParseGeometry(draw_info_01->geometry,&geometry_info);" (call_expression "ParseGeometry(draw_info_01->geometry,&geometry_info)" identifier (argument_list "(draw_info_01->geometry,&geometry_info)" ( (field_expression "draw_info_01->geometry" identifier -> field_identifier) , (pointer_expression "&geometry_info" & identifier) ))) ;) })) (expression_statement "MVar13 = SetImageStorageClass(image,DirectClass,exception);" (assignment_expression "MVar13 = SetImageStorageClass(image,DirectClass,exception)" identifier = (call_expression "SetImageStorageClass(image,DirectClass,exception)" identifier (argument_list "(image,DirectClass,exception)" ( identifier , identifier , identifier )))) ;) (if_statement "if (MVar13 != MagickFalse) {\n    if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }\n    pTVar16 = &metrics;\n    for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }\n    pcVar11 = (char *)*local_2174;\n    if (pcVar11 == (char *)0x0) {\n      MVar13 = MagickTrue;\n    }\n    else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }\n  }" if (parenthesized_expression "(MVar13 != MagickFalse)" ( (binary_expression "MVar13 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }\n    pTVar16 = &metrics;\n    for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }\n    pcVar11 = (char *)*local_2174;\n    if (pcVar11 == (char *)0x0) {\n      MVar13 = MagickTrue;\n    }\n    else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }\n  }" { (if_statement "if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }" if (parenthesized_expression "((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace))" ( (binary_expression "(image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)" (parenthesized_expression "(image->colorspace == LinearGRAYColorspace)" ( (binary_expression "image->colorspace == LinearGRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(image->colorspace == GRAYColorspace)" ( (binary_expression "image->colorspace == GRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n      SetImageColorspace(image,sRGBColorspace,exception);\n    }" { (expression_statement "SetImageColorspace(image,sRGBColorspace,exception);" (call_expression "SetImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pTVar16 = &metrics;" (assignment_expression "pTVar16 = &metrics" identifier = (pointer_expression "&metrics" & identifier)) ;) (for_statement "for (iVar14 = 0x1e; iVar14 != 0; iVar14 = iVar14 + -1) {\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }" for ( (assignment_expression "iVar14 = 0x1e" identifier = number_literal) ; (binary_expression "iVar14 != 0" identifier != number_literal) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n      *(undefined4 *)&(pTVar16->pixels_per_em).x = 0;\n      pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);\n    }" { (expression_statement "*(undefined4 *)&(pTVar16->pixels_per_em).x = 0;" (assignment_expression "*(undefined4 *)&(pTVar16->pixels_per_em).x = 0" (pointer_expression "*(undefined4 *)&(pTVar16->pixels_per_em).x" * (cast_expression "(undefined4 *)&(pTVar16->pixels_per_em).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pTVar16->pixels_per_em).x" & (field_expression "(pTVar16->pixels_per_em).x" (parenthesized_expression "(pTVar16->pixels_per_em)" ( (field_expression "pTVar16->pixels_per_em" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4);" (assignment_expression "pTVar16 = (TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(TypeMetric *)((int)pTVar16 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "TypeMetric *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pTVar16 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pTVar16 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pTVar16 + (uint)bVar19 * -8" (cast_expression "(int)pTVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pcVar11 = (char *)*local_2174;" (assignment_expression "pcVar11 = (char *)*local_2174" identifier = (cast_expression "(char *)*local_2174" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2174" * identifier))) ;) (if_statement "if (pcVar11 == (char *)0x0) {\n      MVar13 = MagickTrue;\n    }\n    else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      MVar13 = MagickTrue;\n    }" { (expression_statement "MVar13 = MagickTrue;" (assignment_expression "MVar13 = MagickTrue" identifier = identifier) ;) }) (else_clause "else {\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }" else (compound_statement "{\n      local_2188 = 0;\n      MVar13 = MagickTrue;\n      do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);\n    }" { (expression_statement "local_2188 = 0;" (assignment_expression "local_2188 = 0" identifier = number_literal) ;) (expression_statement "MVar13 = MagickTrue;" (assignment_expression "MVar13 = MagickTrue" identifier = identifier) ;) (do_statement "do {\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      } while (pcVar11 != (char *)0x0);" do (compound_statement "{\n        if (*pcVar11 == '\0') goto LAB_0003a60a;\n        (draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;\n        (draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;\n        CloneString(&draw_info_00->text,pcVar11);\n        if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }\n        local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));\n        iVar14 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }\n        dVar3 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar14);\n        dVar8 = (double)local_217c;\n        switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }\n        AVar5 = draw_info_00->align;\njoined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }\n        if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }\n        local_216c = primitive;\n        (draw_info_01->affine).tx = offset.x;\n        (draw_info_01->affine).ty = offset.y;\n        dVar3 = (draw_info_01->stroke).alpha;\n        pPVar15 = &draw_info_01->fill;\n        pPVar17 = &pixel;\n        for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }\n        if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }\n        QueryColorname(image,&pixel,AllCompliance,color,exception);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);\n        if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);\n        if (MVar13 == MagickFalse) break;\n        if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar11 = (char *)local_2174[local_2188];\n      }" { (if_statement "if (*pcVar11 == '\0') goto LAB_0003a60a;" if (parenthesized_expression "(*pcVar11 == '\0')" ( (binary_expression "*pcVar11 == '\0'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003a60a;" goto statement_identifier ;)) (expression_statement "(draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x;" (assignment_expression "(draw_info_01->affine).tx = geometry_info.xi - (double)(image->page).x" (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "geometry_info.xi - (double)(image->page).x" (field_expression "geometry_info.xi" identifier . field_identifier) - (cast_expression "(double)(image->page).x" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "(draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y;" (assignment_expression "(draw_info_01->affine).ty = geometry_info.psi - (double)(image->page).y" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "geometry_info.psi - (double)(image->page).y" (field_expression "geometry_info.psi" identifier . field_identifier) - (cast_expression "(double)(image->page).y" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "CloneString(&draw_info_00->text,pcVar11);" (call_expression "CloneString(&draw_info_00->text,pcVar11)" identifier (argument_list "(&draw_info_00->text,pcVar11)" ( (pointer_expression "&draw_info_00->text" & (field_expression "draw_info_00->text" identifier -> field_identifier)) , identifier ))) ;) (if_statement "if (((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)) {\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }" if (parenthesized_expression "(((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity))" ( (binary_expression "((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||\n           (draw_info_00->gravity != NorthWestGravity)" (parenthesized_expression "((double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0)" ( (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) == 0.0" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) == number_literal) )) || (parenthesized_expression "(draw_info_00->gravity != NorthWestGravity)" ( (binary_expression "draw_info_00->gravity != NorthWestGravity" (field_expression "draw_info_00->gravity" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n          GetTypeMetrics(image,draw_info_00,&metrics,exception);\n        }" { (expression_statement "GetTypeMetrics(image,draw_info_00,&metrics,exception);" (call_expression "GetTypeMetrics(image,draw_info_00,&metrics,exception)" identifier (argument_list "(image,draw_info_00,&metrics,exception)" ( identifier , identifier , (pointer_expression "&metrics" & identifier) , identifier ))) ;) })) (expression_statement "local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124));" (assignment_expression "local_2154 = (int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124))" identifier = (cast_expression "(int)(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)\n                          ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124))" identifier (argument_list "(ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124))" ( (call_expression "ROUND((metrics.ascent - metrics.descent) + (double)DAT_0029f124)" identifier (argument_list "((metrics.ascent - metrics.descent) + (double)DAT_0029f124)" ( (binary_expression "(metrics.ascent - metrics.descent) + (double)DAT_0029f124" (parenthesized_expression "(metrics.ascent - metrics.descent)" ( (binary_expression "metrics.ascent - metrics.descent" (field_expression "metrics.ascent" identifier . field_identifier) - (field_expression "metrics.descent" identifier . field_identifier)) )) + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )))))) ;) (expression_statement "iVar14 = local_2154;" (assignment_expression "iVar14 = local_2154" identifier = identifier) ;) (if_statement "if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }" if (parenthesized_expression "(local_2154 == 0)" ( (binary_expression "local_2154 == 0" identifier == number_literal) )) (compound_statement "{\n          local_2154 = (int)(longlong)ROUND(draw_info->pointsize);\n          iVar14 = local_2154;\n        }" { (expression_statement "local_2154 = (int)(longlong)ROUND(draw_info->pointsize);" (assignment_expression "local_2154 = (int)(longlong)ROUND(draw_info->pointsize)" identifier = (cast_expression "(int)(longlong)ROUND(draw_info->pointsize)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(draw_info->pointsize)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(draw_info->pointsize)" identifier (argument_list "(draw_info->pointsize)" ( (field_expression "draw_info->pointsize" identifier -> field_identifier) )))))) ;) (expression_statement "iVar14 = local_2154;" (assignment_expression "iVar14 = local_2154" identifier = identifier) ;) })) (expression_statement "dVar3 = (double)local_2188;" (assignment_expression "dVar3 = (double)local_2188" identifier = (cast_expression "(double)local_2188" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))\n        ;" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))" identifier = (cast_expression "(int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))" identifier (argument_list "(ROUND(DAT_0029f124 + (float)draw_info->interline_spacing))" ( (call_expression "ROUND(DAT_0029f124 + (float)draw_info->interline_spacing)" identifier (argument_list "(DAT_0029f124 + (float)draw_info->interline_spacing)" ( (binary_expression "DAT_0029f124 + (float)draw_info->interline_spacing" identifier + (cast_expression "(float)draw_info->interline_spacing" ( (type_descriptor "float" primitive_type) ) (field_expression "draw_info->interline_spacing" identifier -> field_identifier))) ))) )))))) ;) (expression_statement "local_217c = (ulonglong)(uint)(local_2154 + iVar14);" (assignment_expression "local_217c = (ulonglong)(uint)(local_2154 + iVar14)" identifier = (call_expression "(ulonglong)(uint)(local_2154 + iVar14)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(local_2154 + iVar14)" ( (binary_expression "local_2154 + iVar14" identifier + identifier) )))) ;) (expression_statement "dVar8 = (double)local_217c;" (assignment_expression "dVar8 = (double)local_217c" identifier = (cast_expression "(double)local_217c" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (switch_statement "switch(draw_info_00->gravity) {\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }" switch (parenthesized_expression "(draw_info_00->gravity)" ( (field_expression "draw_info_00->gravity" identifier -> field_identifier) )) (compound_statement "{\n        case ForgetGravity:\n        default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;\n        case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;\n        case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;\n        case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;\n        case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;\n        case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;\n        case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;\n        case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;\n        case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;\n        case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;\n        }" { (case_statement "case ForgetGravity:" case identifier :) (case_statement "default:\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;\n          break;" default : (expression_statement "offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;" (assignment_expression "offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx" (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8" (binary_expression "(draw_info_01->affine).ry * dVar3" (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * identifier) * identifier) + (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty;" (assignment_expression "offset.y = (draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "(draw_info_01->affine).sy * dVar3 * dVar8 + (draw_info_01->affine).ty" (binary_expression "(draw_info_01->affine).sy * dVar3 * dVar8" (binary_expression "(draw_info_01->affine).sy * dVar3" (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * identifier) * identifier) + (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case NorthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;\n          break;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width == 0)" ( (binary_expression "geometry.width == 0" (field_expression "geometry.width" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1;" (assignment_expression "offset.x = dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx +\n                     (metrics.descent + metrics.ascent) * dVar1" (binary_expression "dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(metrics.descent + metrics.ascent) * dVar1" (parenthesized_expression "(metrics.descent + metrics.ascent)" ( (binary_expression "metrics.descent + metrics.ascent" (field_expression "metrics.descent" identifier . field_identifier) + (field_expression "metrics.ascent" identifier . field_identifier)) )) * identifier))) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height == 0)" ( (binary_expression "geometry.height == 0" (field_expression "geometry.height" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty;" (assignment_expression "offset.y = metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty" (binary_expression "metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8" (binary_expression "metrics.ascent * dVar1" (field_expression "metrics.ascent" identifier . field_identifier) * identifier) + (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier)) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case NorthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n          break;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width == 0)" ( (binary_expression "geometry.width == 0" (field_expression "geometry.width" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1;" (assignment_expression "offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124) + (metrics.descent + metrics.ascent) * dVar1" (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124)" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx +\n                      (double)geometry.width * (double)DAT_0029f124" (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(double)geometry.width * (double)DAT_0029f124" (cast_expression "(double)geometry.width" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.width" identifier . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124" (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) + (binary_expression "(metrics.descent + metrics.ascent) * dVar1" (parenthesized_expression "(metrics.descent + metrics.ascent)" ( (binary_expression "metrics.descent + metrics.ascent" (field_expression "metrics.descent" identifier . field_identifier) + (field_expression "metrics.ascent" identifier . field_identifier)) )) * identifier))) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height == 0)" ( (binary_expression "geometry.height == 0" (field_expression "geometry.height" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;" (assignment_expression "offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "(metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124" (parenthesized_expression "(metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty)" ( (binary_expression "metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty" (binary_expression "metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8" (binary_expression "metrics.ascent * dVar1" (field_expression "metrics.ascent" identifier . field_identifier) * identifier) + (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier)) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124" (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case NorthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n          break;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width != 0)" ( (binary_expression "geometry.width != 0" (field_expression "geometry.width" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0;" (assignment_expression "offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "(((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1) - 1.0" (parenthesized_expression "(((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1)" ( (binary_expression "((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) +\n                     (metrics.descent + metrics.ascent) * dVar1" (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (cast_expression "(double)geometry.width" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.width" identifier . field_identifier))) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "(draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))))) )) + (binary_expression "(metrics.descent + metrics.ascent) * dVar1" (parenthesized_expression "(metrics.descent + metrics.ascent)" ( (binary_expression "metrics.descent + metrics.ascent" (field_expression "metrics.descent" identifier . field_identifier) + (field_expression "metrics.ascent" identifier . field_identifier)) )) * identifier)) )) - number_literal)) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height == 0)" ( (binary_expression "geometry.height == 0" (field_expression "geometry.height" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;" (assignment_expression "offset.y = (metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "(metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (parenthesized_expression "(metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty)" ( (binary_expression "metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).ty" (binary_expression "metrics.ascent * dVar1 +\n                     dVar1 * dVar3 * dVar8" (binary_expression "metrics.ascent * dVar1" (field_expression "metrics.ascent" identifier . field_identifier) * identifier) + (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier)) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case WestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;\n          break;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width == 0)" ( (binary_expression "geometry.width == 0" (field_expression "geometry.width" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;" (assignment_expression "dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8" identifier = (binary_expression "(metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8" (parenthesized_expression "(metrics.ascent + metrics.descent)" ( (binary_expression "metrics.ascent + metrics.descent" (field_expression "metrics.ascent" identifier . field_identifier) + (field_expression "metrics.descent" identifier . field_identifier)) )) - (binary_expression "((double)local_215c - 1.0) * dVar8" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8;" (assignment_expression "offset.x = dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx + dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar6 * (double)DAT_0029f124 +\n                     dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar6 * (double)DAT_0029f124" (binary_expression "dVar1 * dVar6" identifier * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier))) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height == 0)" ( (binary_expression "geometry.height == 0" (field_expression "geometry.height" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124;" (assignment_expression "offset.y = (double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "(double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty +\n                     (double)geometry.height * (double)DAT_0029f124" (binary_expression "(double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8 +\n                     dVar2 * (draw_info_01->affine).ty" (binary_expression "(double)DAT_0029f124 * dVar6 * dVar1 +\n                     dVar1 * dVar3 * dVar8" (binary_expression "(double)DAT_0029f124 * dVar6 * dVar1" (binary_expression "(double)DAT_0029f124 * dVar6" (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) * identifier) + (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier)) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(double)geometry.height * (double)DAT_0029f124" (cast_expression "(double)geometry.height" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.height" identifier . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case CenterGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar6 = (double)DAT_0029f124;\n          offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);\n          break;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width == 0)" ( (binary_expression "geometry.width == 0" (field_expression "geometry.width" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;" (assignment_expression "dVar7 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8" identifier = (binary_expression "(metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8" (parenthesized_expression "(metrics.ascent + metrics.descent)" ( (binary_expression "metrics.ascent + metrics.descent" (field_expression "metrics.ascent" identifier . field_identifier) + (field_expression "metrics.descent" identifier . field_identifier)) )) - (binary_expression "((double)local_215c - 1.0) * dVar8" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "dVar6 = (double)DAT_0029f124;" (assignment_expression "dVar6 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6);" (assignment_expression "offset.x = dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6)" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "dVar1 * dVar7 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6)" (binary_expression "dVar1 * dVar7 * dVar6" (binary_expression "dVar1 * dVar7" identifier * identifier) * identifier) + (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6)" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6" (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(double)geometry.width * dVar6" (cast_expression "(double)geometry.width" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.width" identifier . field_identifier)) * identifier)) )) - (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6" (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) ))))) * identifier)) )))) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height == 0)" ( (binary_expression "geometry.height == 0" (field_expression "geometry.height" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar6 = (double)DAT_0029f124;" (assignment_expression "dVar6 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6);" (assignment_expression "offset.y = dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6)" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "dVar7 * dVar1 * dVar6 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6)" (binary_expression "dVar7 * dVar1 * dVar6" (binary_expression "dVar7 * dVar1" identifier * identifier) * identifier) + (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6)" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty + (double)geometry.height * dVar6" (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(double)geometry.height * dVar6" (cast_expression "(double)geometry.height" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.height" identifier . field_identifier)) * identifier)) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * dVar6" (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case EastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;\n          offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;\n          dVar2 = 1.0;\n          if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);\n          break;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width != 0)" ( (binary_expression "geometry.width != 0" (field_expression "geometry.width" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8;" (assignment_expression "dVar6 = (metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8" identifier = (binary_expression "(metrics.ascent + metrics.descent) - ((double)local_215c - 1.0) * dVar8" (parenthesized_expression "(metrics.ascent + metrics.descent)" ( (binary_expression "metrics.ascent + metrics.descent" (field_expression "metrics.ascent" identifier . field_identifier) + (field_expression "metrics.descent" identifier . field_identifier)) )) - (binary_expression "((double)local_215c - 1.0) * dVar8" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;" (assignment_expression "offset.x = (dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "(dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))) - 1.0" (parenthesized_expression "(dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)))" ( (binary_expression "dVar1 * dVar6 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))" (binary_expression "dVar1 * dVar6 * (double)DAT_0029f124" (binary_expression "dVar1 * dVar6" identifier * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width + dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8 +\n                      (double)geometry.width" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (cast_expression "(double)geometry.width" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.width" identifier . field_identifier))) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))))) ))) )) - number_literal)) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height == 0)" ( (binary_expression "geometry.height == 0" (field_expression "geometry.height" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx);" (assignment_expression "offset.y = dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx)" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "dVar6 * dVar1 * (double)DAT_0029f124 +\n                     ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx)" (binary_expression "dVar6 * dVar1 * (double)DAT_0029f124" (binary_expression "dVar6 * dVar1" identifier * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx)" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty +\n                      (double)geometry.height * (double)DAT_0029f124" (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).ty" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(double)geometry.height * (double)DAT_0029f124" (cast_expression "(double)geometry.height" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.height" identifier . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )))) ;) (break_statement "break;" break ;)) (case_statement "case SouthWestGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\n          goto LAB_0003a70e;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width == 0)" ( (binary_expression "geometry.width == 0" (field_expression "geometry.width" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8;" (assignment_expression "offset.x = (dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "(dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8" (parenthesized_expression "(dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx)" ( (binary_expression "dVar1 * dVar3 * dVar8 + dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "dVar1 * ((double)local_215c - 1.0) * dVar8" (binary_expression "dVar1 * ((double)local_215c - 1.0)" identifier * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier))) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height != 0)" ( (binary_expression "geometry.height != 0" (field_expression "geometry.height" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty;" (assignment_expression "dVar2 = dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty" identifier = (binary_expression "dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height + dVar2 * (draw_info_01->affine).ty" (binary_expression "dVar1 * dVar3 * dVar8 +\n                  (double)geometry.height" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (cast_expression "(double)geometry.height" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.height" identifier . field_identifier))) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "dVar1 = ((double)local_215c - 1.0) * dVar1;" (assignment_expression "dVar1 = ((double)local_215c - 1.0) * dVar1" identifier = (binary_expression "((double)local_215c - 1.0) * dVar1" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier)) ;) (goto_statement "goto LAB_0003a70e;" goto statement_identifier ;)) (case_statement "case SouthGravity:\n          dVar2 = 1.0;\n          if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = (double)DAT_0029f124;\n          offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;\n          dVar2 = 1.0;\n          if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).sy;\n          dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;\n          dVar1 = ((double)local_215c - 1.0) * dVar1;\nLAB_0003a70e:\n          AVar5 = draw_info_00->align;\n          offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;\n          goto joined_r0x0003a72a;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width == 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width == 0)" ( (binary_expression "geometry.width == 0" (field_expression "geometry.width" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar6 = (double)DAT_0029f124;" (assignment_expression "dVar6 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6;" (assignment_expression "offset.x = ((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6" (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6)" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx + (double)geometry.width * dVar6" (binary_expression "dVar1 * dVar3 * dVar8 +\n                      dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "(double)geometry.width * dVar6" (cast_expression "(double)geometry.width" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.width" identifier . field_identifier)) * identifier)) )) - (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) * dVar6" (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) ))))) * identifier)) )) - (binary_expression "dVar1 * ((double)local_215c - 1.0) * dVar8 * dVar6" (binary_expression "dVar1 * ((double)local_215c - 1.0) * dVar8" (binary_expression "dVar1 * ((double)local_215c - 1.0)" identifier * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier) * identifier))) ;) (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.height != 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.height != 0)" ( (binary_expression "geometry.height != 0" (field_expression "geometry.height" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).sy;" (assignment_expression "dVar1 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124;" (assignment_expression "dVar2 = ((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124" identifier = (binary_expression "((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8) -\n                  (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124" (parenthesized_expression "((double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8)" ( (binary_expression "(double)geometry.height + dVar2 * (draw_info_01->affine).ty +\n                  dVar1 * dVar3 * dVar8" (binary_expression "(double)geometry.height + dVar2 * (draw_info_01->affine).ty" (cast_expression "(double)geometry.height" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.height" identifier . field_identifier)) + (binary_expression "dVar2 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx * (double)DAT_0029f124" (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                  (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "dVar1 = ((double)local_215c - 1.0) * dVar1;" (assignment_expression "dVar1 = ((double)local_215c - 1.0) * dVar1" identifier = (binary_expression "((double)local_215c - 1.0) * dVar1" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier)) ;) (labeled_statement "LAB_0003a70e:\n          AVar5 = draw_info_00->align;" statement_identifier : (expression_statement "AVar5 = draw_info_00->align;" (assignment_expression "AVar5 = draw_info_00->align" identifier = (field_expression "draw_info_00->align" identifier -> field_identifier)) ;)) (expression_statement "offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent;" (assignment_expression "offset.y = (dVar2 - dVar1 * dVar8) + metrics.descent" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "(dVar2 - dVar1 * dVar8) + metrics.descent" (parenthesized_expression "(dVar2 - dVar1 * dVar8)" ( (binary_expression "dVar2 - dVar1 * dVar8" identifier - (binary_expression "dVar1 * dVar8" identifier * identifier)) )) + (field_expression "metrics.descent" identifier . field_identifier))) ;) (goto_statement "goto joined_r0x0003a72a;" goto statement_identifier ;)) (case_statement "case SouthEastGravity:\n          dVar2 = 1.0;\n          if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }\n          dVar1 = (draw_info_01->affine).ry;\n          dVar6 = 1.0;\n          offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;\n          if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }\n          dVar2 = (draw_info_01->affine).sy;\n          offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;" case identifier : (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (if_statement "if (geometry.width != 0) {\n            dVar2 = -1.0;\n          }" if (parenthesized_expression "(geometry.width != 0)" ( (binary_expression "geometry.width != 0" (field_expression "geometry.width" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            dVar2 = -1.0;\n          }" { (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar1 = (draw_info_01->affine).ry;" (assignment_expression "dVar1 = (draw_info_01->affine).ry" identifier = (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar6 = 1.0;" (assignment_expression "dVar6 = 1.0" identifier = number_literal) ;) (expression_statement "offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0;" (assignment_expression "offset.x = (((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "(((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8) - 1.0" (parenthesized_expression "(((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8)" ( (binary_expression "((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)) -\n                     dVar1 * ((double)local_215c - 1.0) * dVar8" (parenthesized_expression "((dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_))" ( (binary_expression "(dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx) -\n                      (draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (parenthesized_expression "(dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx)" ( (binary_expression "dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width + dVar2 * (draw_info_01->affine).tx" (binary_expression "dVar1 * dVar3 * dVar8 +\n                       (double)geometry.width" (binary_expression "dVar1 * dVar3 * dVar8" (binary_expression "dVar1 * dVar3" identifier * identifier) * identifier) + (cast_expression "(double)geometry.width" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.width" identifier . field_identifier))) + (binary_expression "dVar2 * (draw_info_01->affine).tx" identifier * (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "(draw_info_01->affine).sx *\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))))) )) - (binary_expression "dVar1 * ((double)local_215c - 1.0) * dVar8" (binary_expression "dVar1 * ((double)local_215c - 1.0)" identifier * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier)) )) - number_literal)) ;) (if_statement "if (geometry.height != 0) {\n            dVar6 = -1.0;\n          }" if (parenthesized_expression "(geometry.height != 0)" ( (binary_expression "geometry.height != 0" (field_expression "geometry.height" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            dVar6 = -1.0;\n          }" { (expression_statement "dVar6 = -1.0;" (assignment_expression "dVar6 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar2 = (draw_info_01->affine).sy;" (assignment_expression "dVar2 = (draw_info_01->affine).sy" identifier = (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent;" (assignment_expression "offset.y = ((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8) +\n                     metrics.descent" (parenthesized_expression "((((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8)" ( (binary_expression "(((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx) - ((double)local_215c - 1.0) * dVar2 * dVar8" (parenthesized_expression "(((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx)" ( (binary_expression "((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8) -\n                      (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx" (parenthesized_expression "((double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8)" ( (binary_expression "(double)geometry.height + dVar6 * (draw_info_01->affine).ty +\n                       dVar2 * dVar3 * dVar8" (binary_expression "(double)geometry.height + dVar6 * (draw_info_01->affine).ty" (cast_expression "(double)geometry.height" ( (type_descriptor "double" primitive_type) ) (field_expression "geometry.height" identifier . field_identifier)) + (binary_expression "dVar6 * (draw_info_01->affine).ty" identifier * (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) + (binary_expression "dVar2 * dVar3 * dVar8" (binary_expression "dVar2 * dVar3" identifier * identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                      (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) )) - (binary_expression "((double)local_215c - 1.0) * dVar2 * dVar8" (binary_expression "((double)local_215c - 1.0) * dVar2" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier) * identifier)) )) + (field_expression "metrics.descent" identifier . field_identifier))) ;)) })) (expression_statement "AVar5 = draw_info_00->align;" (assignment_expression "AVar5 = draw_info_00->align" identifier = (field_expression "draw_info_00->align" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x0003a72a:\n        if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" statement_identifier : (if_statement "if (AVar5 == CenterAlign) {\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }\n        else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" if (parenthesized_expression "(AVar5 == CenterAlign)" ( (binary_expression "AVar5 == CenterAlign" identifier == identifier) )) (compound_statement "{\n          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;\n        }" { (expression_statement "offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124;" (assignment_expression "offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124" (parenthesized_expression "((draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8)" ( (binary_expression "(draw_info_01->affine).tx + (draw_info_01->affine).ry * dVar3 * dVar8" (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) + (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8" (binary_expression "(draw_info_01->affine).ry * dVar3" (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * identifier) * identifier)) )) - (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (double)DAT_0029f124" (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124;" (assignment_expression "offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124" (parenthesized_expression "((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8)" ( (binary_expression "(draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) + (binary_expression "dVar3 * (draw_info_01->affine).sy * dVar8" (binary_expression "dVar3 * (draw_info_01->affine).sy" identifier * (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * identifier)) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx * (double)DAT_0029f124" (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) }) (else_clause "else if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" else (if_statement "if (AVar5 == RightAlign) {\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }\n        else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" if (parenthesized_expression "(AVar5 == RightAlign)" ( (binary_expression "AVar5 == RightAlign" identifier == identifier) )) (compound_statement "{\n          offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);\n          offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;\n        }" { (expression_statement "offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_);" (assignment_expression "offset.x = ((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx) -\n                     (draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (parenthesized_expression "((draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx)" ( (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx" (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8" (binary_expression "(draw_info_01->affine).ry * dVar3" (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * identifier) * identifier) + (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) )) - (binary_expression "(draw_info_01->affine).sx *\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" (field_expression "(draw_info_01->affine).sx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) ))))))) ;) (expression_statement "offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx;" (assignment_expression "offset.y = ((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8) -\n                     (double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (parenthesized_expression "((draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8)" ( (binary_expression "(draw_info_01->affine).ty + dVar3 * (draw_info_01->affine).sy * dVar8" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) + (binary_expression "dVar3 * (draw_info_01->affine).sy * dVar8" (binary_expression "dVar3 * (draw_info_01->affine).sy" identifier * (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * identifier)) )) - (binary_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_) *\n                     (draw_info_01->affine).rx" (cast_expression "(double)CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(metrics.width._4_4_,metrics.width._0_4_)" identifier (argument_list "(metrics.width._4_4_,metrics.width._0_4_)" ( (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) )))) * (field_expression "(draw_info_01->affine).rx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)))) ;) }) (else_clause "else if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" else (if_statement "if (AVar5 == LeftAlign) {\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" if (parenthesized_expression "(AVar5 == LeftAlign)" ( (binary_expression "AVar5 == LeftAlign" identifier == identifier) )) (compound_statement "{\n          offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;\n          offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;\n        }" { (expression_statement "offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx;" (assignment_expression "offset.x = (draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx" (field_expression "offset.x" identifier . field_identifier) = (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8 + (draw_info_01->affine).tx" (binary_expression "(draw_info_01->affine).ry * dVar3 * dVar8" (binary_expression "(draw_info_01->affine).ry * dVar3" (field_expression "(draw_info_01->affine).ry" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) * identifier) * identifier) + (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty;" (assignment_expression "offset.y = dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty" (field_expression "offset.y" identifier . field_identifier) = (binary_expression "dVar3 * (draw_info_01->affine).sy * dVar8 + (draw_info_01->affine).ty" (binary_expression "dVar3 * (draw_info_01->affine).sy * dVar8" (binary_expression "dVar3 * (draw_info_01->affine).sy" identifier * (field_expression "(draw_info_01->affine).sy" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier)) * identifier) + (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier))) ;) }))))))) (if_statement "if ((draw_info->undercolor).alpha != 0.0) {\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }" if (parenthesized_expression "((draw_info->undercolor).alpha != 0.0)" ( (binary_expression "(draw_info->undercolor).alpha != 0.0" (field_expression "(draw_info->undercolor).alpha" (parenthesized_expression "(draw_info->undercolor)" ( (field_expression "draw_info->undercolor" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);\n          pPVar15 = &draw_info->undercolor;\n          pPVar17 = &draw_info_02->fill;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n          *(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;\n          *(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);\n          *(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;\n          *(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);\n          *(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;\n          *(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);\n          dVar3 = (draw_info->affine).ry;\n          *(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;\n          *(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);\n          *(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;\n          *(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);\n          (draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;\n          (draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;\n          local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);\n          local_217c._0_4_ = SUB84(dVar8,0);\n          FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);\n          CloneString(&draw_info_02->primitive,primitive);\n          DrawImage(image,draw_info_02,exception);\n          DestroyDrawInfo(draw_info_02);\n        }" { (expression_statement "draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0);" (assignment_expression "draw_info_02 = CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0)" identifier = (call_expression "CloneDrawInfo((ImageInfo *)0x0,(DrawInfo *)0x0)" identifier (argument_list "((ImageInfo *)0x0,(DrawInfo *)0x0)" ( (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(DrawInfo *)0x0" ( (type_descriptor "DrawInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pPVar15 = &draw_info->undercolor;" (assignment_expression "pPVar15 = &draw_info->undercolor" identifier = (pointer_expression "&draw_info->undercolor" & (field_expression "draw_info->undercolor" identifier -> field_identifier))) ;) (expression_statement "pPVar17 = &draw_info_02->fill;" (assignment_expression "pPVar17 = &draw_info_02->fill" identifier = (pointer_expression "&draw_info_02->fill" & (field_expression "draw_info_02->fill" identifier -> field_identifier))) ;) (for_statement "for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }" for ( (assignment_expression "iVar14 = 0x14" identifier = number_literal) ; (binary_expression "iVar14 != 0" identifier != number_literal) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }" { (expression_statement "pPVar17->storage_class = pPVar15->storage_class;" (assignment_expression "pPVar17->storage_class = pPVar15->storage_class" (field_expression "pPVar17->storage_class" identifier -> field_identifier) = (field_expression "pPVar15->storage_class" identifier -> field_identifier)) ;) (expression_statement "pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);" (assignment_expression "pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pPVar15 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pPVar15 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pPVar15 + (uint)bVar19 * -8" (cast_expression "(int)pPVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);" (assignment_expression "pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pPVar17 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pPVar17 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pPVar17 + (uint)bVar19 * -8" (cast_expression "(int)pPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx;" (assignment_expression "*(undefined4 *)&(draw_info_02->affine).sx = *(undefined4 *)&(draw_info->affine).sx" (pointer_expression "*(undefined4 *)&(draw_info_02->affine).sx" * (cast_expression "(undefined4 *)&(draw_info_02->affine).sx" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info_02->affine).sx" & (field_expression "(draw_info_02->affine).sx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(draw_info->affine).sx" * (cast_expression "(undefined4 *)&(draw_info->affine).sx" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info->affine).sx" & (field_expression "(draw_info->affine).sx" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4);" (assignment_expression "*(undefined4 *)((int)&(draw_info_02->affine).sx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sx + 4)" (pointer_expression "*(undefined4 *)((int)&(draw_info_02->affine).sx + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info_02->affine).sx + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info_02->affine).sx + 4)" ( (binary_expression "(int)&(draw_info_02->affine).sx + 4" (cast_expression "(int)&(draw_info_02->affine).sx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info_02->affine).sx" & (field_expression "(draw_info_02->affine).sx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(draw_info->affine).sx + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info->affine).sx + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info->affine).sx + 4)" ( (binary_expression "(int)&(draw_info->affine).sx + 4" (cast_expression "(int)&(draw_info->affine).sx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info->affine).sx" & (field_expression "(draw_info->affine).sx" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx;" (assignment_expression "*(undefined4 *)&(draw_info_02->affine).rx = *(undefined4 *)&(draw_info->affine).rx" (pointer_expression "*(undefined4 *)&(draw_info_02->affine).rx" * (cast_expression "(undefined4 *)&(draw_info_02->affine).rx" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info_02->affine).rx" & (field_expression "(draw_info_02->affine).rx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(draw_info->affine).rx" * (cast_expression "(undefined4 *)&(draw_info->affine).rx" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info->affine).rx" & (field_expression "(draw_info->affine).rx" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4);" (assignment_expression "*(undefined4 *)((int)&(draw_info_02->affine).rx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).rx + 4)" (pointer_expression "*(undefined4 *)((int)&(draw_info_02->affine).rx + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info_02->affine).rx + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info_02->affine).rx + 4)" ( (binary_expression "(int)&(draw_info_02->affine).rx + 4" (cast_expression "(int)&(draw_info_02->affine).rx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info_02->affine).rx" & (field_expression "(draw_info_02->affine).rx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(draw_info->affine).rx + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info->affine).rx + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info->affine).rx + 4)" ( (binary_expression "(int)&(draw_info->affine).rx + 4" (cast_expression "(int)&(draw_info->affine).rx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info->affine).rx" & (field_expression "(draw_info->affine).rx" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry;" (assignment_expression "*(undefined4 *)&(draw_info_02->affine).ry = *(undefined4 *)&(draw_info->affine).ry" (pointer_expression "*(undefined4 *)&(draw_info_02->affine).ry" * (cast_expression "(undefined4 *)&(draw_info_02->affine).ry" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info_02->affine).ry" & (field_expression "(draw_info_02->affine).ry" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(draw_info->affine).ry" * (cast_expression "(undefined4 *)&(draw_info->affine).ry" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info->affine).ry" & (field_expression "(draw_info->affine).ry" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4);" (assignment_expression "*(undefined4 *)((int)&(draw_info_02->affine).ry + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).ry + 4)" (pointer_expression "*(undefined4 *)((int)&(draw_info_02->affine).ry + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info_02->affine).ry + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info_02->affine).ry + 4)" ( (binary_expression "(int)&(draw_info_02->affine).ry + 4" (cast_expression "(int)&(draw_info_02->affine).ry" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info_02->affine).ry" & (field_expression "(draw_info_02->affine).ry" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(draw_info->affine).ry + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info->affine).ry + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info->affine).ry + 4)" ( (binary_expression "(int)&(draw_info->affine).ry + 4" (cast_expression "(int)&(draw_info->affine).ry" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info->affine).ry" & (field_expression "(draw_info->affine).ry" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "dVar3 = (draw_info->affine).ry;" (assignment_expression "dVar3 = (draw_info->affine).ry" identifier = (field_expression "(draw_info->affine).ry" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy;" (assignment_expression "*(undefined4 *)&(draw_info_02->affine).sy = *(undefined4 *)&(draw_info->affine).sy" (pointer_expression "*(undefined4 *)&(draw_info_02->affine).sy" * (cast_expression "(undefined4 *)&(draw_info_02->affine).sy" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info_02->affine).sy" & (field_expression "(draw_info_02->affine).sy" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(draw_info->affine).sy" * (cast_expression "(undefined4 *)&(draw_info->affine).sy" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info->affine).sy" & (field_expression "(draw_info->affine).sy" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4);" (assignment_expression "*(undefined4 *)((int)&(draw_info_02->affine).sy + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).sy + 4)" (pointer_expression "*(undefined4 *)((int)&(draw_info_02->affine).sy + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info_02->affine).sy + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info_02->affine).sy + 4)" ( (binary_expression "(int)&(draw_info_02->affine).sy + 4" (cast_expression "(int)&(draw_info_02->affine).sy" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info_02->affine).sy" & (field_expression "(draw_info_02->affine).sy" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(draw_info->affine).sy + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info->affine).sy + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info->affine).sy + 4)" ( (binary_expression "(int)&(draw_info->affine).sy + 4" (cast_expression "(int)&(draw_info->affine).sy" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info->affine).sy" & (field_expression "(draw_info->affine).sy" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx;" (assignment_expression "*(undefined4 *)&(draw_info_02->affine).tx = *(undefined4 *)&(draw_info->affine).tx" (pointer_expression "*(undefined4 *)&(draw_info_02->affine).tx" * (cast_expression "(undefined4 *)&(draw_info_02->affine).tx" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info_02->affine).tx" & (field_expression "(draw_info_02->affine).tx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(draw_info->affine).tx" * (cast_expression "(undefined4 *)&(draw_info->affine).tx" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info->affine).tx" & (field_expression "(draw_info->affine).tx" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4);" (assignment_expression "*(undefined4 *)((int)&(draw_info_02->affine).tx + 4) =\n               *(undefined4 *)((int)&(draw_info->affine).tx + 4)" (pointer_expression "*(undefined4 *)((int)&(draw_info_02->affine).tx + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info_02->affine).tx + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info_02->affine).tx + 4)" ( (binary_expression "(int)&(draw_info_02->affine).tx + 4" (cast_expression "(int)&(draw_info_02->affine).tx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info_02->affine).tx" & (field_expression "(draw_info_02->affine).tx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(draw_info->affine).tx + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info->affine).tx + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info->affine).tx + 4)" ( (binary_expression "(int)&(draw_info->affine).tx + 4" (cast_expression "(int)&(draw_info->affine).tx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info->affine).tx" & (field_expression "(draw_info->affine).tx" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "(draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent;" (assignment_expression "(draw_info_02->affine).tx = offset.x - dVar3 * metrics.ascent" (field_expression "(draw_info_02->affine).tx" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "offset.x - dVar3 * metrics.ascent" (field_expression "offset.x" identifier . field_identifier) - (binary_expression "dVar3 * metrics.ascent" identifier * (field_expression "metrics.ascent" identifier . field_identifier)))) ;) (expression_statement "(draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy;" (assignment_expression "(draw_info_02->affine).ty = offset.y - metrics.ascent * (draw_info->affine).sy" (field_expression "(draw_info_02->affine).ty" (parenthesized_expression "(draw_info_02->affine)" ( (field_expression "draw_info_02->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "offset.y - metrics.ascent * (draw_info->affine).sy" (field_expression "offset.y" identifier . field_identifier) - (binary_expression "metrics.ascent * (draw_info->affine).sy" (field_expression "metrics.ascent" identifier . field_identifier) * (field_expression "(draw_info->affine).sy" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20);" (assignment_expression "local_217c._4_4_ = (undefined4)((ulonglong)dVar8 >> 0x20)" (field_expression "local_217c._4_4_" identifier . field_identifier) = (call_expression "(undefined4)((ulonglong)dVar8 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar8 >> 0x20)" ( (binary_expression "(ulonglong)dVar8 >> 0x20" (cast_expression "(ulonglong)dVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_217c._0_4_ = SUB84(dVar8,0);" (assignment_expression "local_217c._0_4_ = SUB84(dVar8,0)" (field_expression "local_217c._0_4_" identifier . field_identifier) = (call_expression "SUB84(dVar8,0)" identifier (argument_list "(dVar8,0)" ( identifier , number_literal )))) ;) (expression_statement "FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_);" (call_expression "FormatLocaleString(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_)" identifier (argument_list "(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,\n                             metrics.origin.x._4_4_,(undefined4)local_217c,local_217c._4_4_)" ( identifier , number_literal , (string_literal ""rectangle 0.0,0.0 %g,%g"" " string_content ") , (field_expression "metrics.origin.x._0_4_" (field_expression "metrics.origin.x" (field_expression "metrics.origin" identifier . field_identifier) . field_identifier) . field_identifier) , (field_expression "metrics.origin.x._4_4_" (field_expression "metrics.origin.x" (field_expression "metrics.origin" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(undefined4)local_217c" ( (type_descriptor "undefined4" type_identifier) ) identifier) , (field_expression "local_217c._4_4_" identifier . field_identifier) ))) ;) (expression_statement "CloneString(&draw_info_02->primitive,primitive);" (call_expression "CloneString(&draw_info_02->primitive,primitive)" identifier (argument_list "(&draw_info_02->primitive,primitive)" ( (pointer_expression "&draw_info_02->primitive" & (field_expression "draw_info_02->primitive" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "DrawImage(image,draw_info_02,exception);" (call_expression "DrawImage(image,draw_info_02,exception)" identifier (argument_list "(image,draw_info_02,exception)" ( identifier , identifier , identifier ))) ;) (expression_statement "DestroyDrawInfo(draw_info_02);" (call_expression "DestroyDrawInfo(draw_info_02)" identifier (argument_list "(draw_info_02)" ( identifier ))) ;) })) (expression_statement "local_216c = primitive;" (assignment_expression "local_216c = primitive" identifier = identifier) ;) (expression_statement "(draw_info_01->affine).tx = offset.x;" (assignment_expression "(draw_info_01->affine).tx = offset.x" (field_expression "(draw_info_01->affine).tx" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (field_expression "offset.x" identifier . field_identifier)) ;) (expression_statement "(draw_info_01->affine).ty = offset.y;" (assignment_expression "(draw_info_01->affine).ty = offset.y" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (field_expression "offset.y" identifier . field_identifier)) ;) (expression_statement "dVar3 = (draw_info_01->stroke).alpha;" (assignment_expression "dVar3 = (draw_info_01->stroke).alpha" identifier = (field_expression "(draw_info_01->stroke).alpha" (parenthesized_expression "(draw_info_01->stroke)" ( (field_expression "draw_info_01->stroke" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pPVar15 = &draw_info_01->fill;" (assignment_expression "pPVar15 = &draw_info_01->fill" identifier = (pointer_expression "&draw_info_01->fill" & (field_expression "draw_info_01->fill" identifier -> field_identifier))) ;) (expression_statement "pPVar17 = &pixel;" (assignment_expression "pPVar17 = &pixel" identifier = (pointer_expression "&pixel" & identifier)) ;) (for_statement "for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }" for ( (assignment_expression "iVar14 = 0x14" identifier = number_literal) ; (binary_expression "iVar14 != 0" identifier != number_literal) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n          pPVar17->storage_class = pPVar15->storage_class;\n          pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n          pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n        }" { (expression_statement "pPVar17->storage_class = pPVar15->storage_class;" (assignment_expression "pPVar17->storage_class = pPVar15->storage_class" (field_expression "pPVar17->storage_class" identifier -> field_identifier) = (field_expression "pPVar15->storage_class" identifier -> field_identifier)) ;) (expression_statement "pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);" (assignment_expression "pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pPVar15 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pPVar15 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pPVar15 + (uint)bVar19 * -8" (cast_expression "(int)pPVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);" (assignment_expression "pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pPVar17 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pPVar17 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pPVar17 + (uint)bVar19 * -8" (cast_expression "(int)pPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (if_statement "if (dVar3 != 0.0) {\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }" if (parenthesized_expression "(dVar3 != 0.0)" ( (binary_expression "dVar3 != 0.0" identifier != number_literal) )) (compound_statement "{\n          pPVar15 = &draw_info_01->stroke;\n          pPVar17 = &pixel;\n          for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }\n        }" { (expression_statement "pPVar15 = &draw_info_01->stroke;" (assignment_expression "pPVar15 = &draw_info_01->stroke" identifier = (pointer_expression "&draw_info_01->stroke" & (field_expression "draw_info_01->stroke" identifier -> field_identifier))) ;) (expression_statement "pPVar17 = &pixel;" (assignment_expression "pPVar17 = &pixel" identifier = (pointer_expression "&pixel" & identifier)) ;) (for_statement "for (iVar14 = 0x14; iVar14 != 0; iVar14 = iVar14 + -1) {\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }" for ( (assignment_expression "iVar14 = 0x14" identifier = number_literal) ; (binary_expression "iVar14 != 0" identifier != number_literal) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n            pPVar17->storage_class = pPVar15->storage_class;\n            pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);\n            pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);\n          }" { (expression_statement "pPVar17->storage_class = pPVar15->storage_class;" (assignment_expression "pPVar17->storage_class = pPVar15->storage_class" (field_expression "pPVar17->storage_class" identifier -> field_identifier) = (field_expression "pPVar15->storage_class" identifier -> field_identifier)) ;) (expression_statement "pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4);" (assignment_expression "pPVar15 = (PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(PixelInfo *)((int)pPVar15 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pPVar15 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pPVar15 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pPVar15 + (uint)bVar19 * -8" (cast_expression "(int)pPVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4);" (assignment_expression "pPVar17 = (PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(PixelInfo *)((int)pPVar17 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pPVar17 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pPVar17 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pPVar17 + (uint)bVar19 * -8" (cast_expression "(int)pPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) })) (expression_statement "QueryColorname(image,&pixel,AllCompliance,color,exception);" (call_expression "QueryColorname(image,&pixel,AllCompliance,color,exception)" identifier (argument_list "(image,&pixel,AllCompliance,color,exception)" ( identifier , (pointer_expression "&pixel" & identifier) , identifier , identifier , identifier ))) ;) (expression_statement "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_);" (call_expression "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_)" identifier (argument_list "(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,\n                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,\n                           metrics.width._0_4_,metrics.width._4_4_)" ( identifier , number_literal , (string_literal ""stroke %s stroke-width %g line 0,0 %g,0"" " string_content ") , identifier , (field_expression "metrics.underline_thickness._0_4_" (field_expression "metrics.underline_thickness" identifier . field_identifier) . field_identifier) , (field_expression "metrics.underline_thickness._4_4_" (field_expression "metrics.underline_thickness" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._0_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) , (field_expression "metrics.width._4_4_" (field_expression "metrics.width" identifier . field_identifier) . field_identifier) ))) ;) (if_statement "if (draw_info_00->decorate == UnderlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }\n        else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" if (parenthesized_expression "(draw_info_00->decorate == UnderlineDecoration)" ( (binary_expression "draw_info_00->decorate == UnderlineDecoration" (field_expression "draw_info_00->decorate" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" { (expression_statement "(draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position;" (assignment_expression "(draw_info_01->affine).ty =\n               (draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(draw_info_01->affine).ty - (draw_info->affine).sy * metrics.underline_position" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) - (binary_expression "(draw_info->affine).sy * metrics.underline_position" (field_expression "(draw_info->affine).sy" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier) * (field_expression "metrics.underline_position" identifier . field_identifier)))) ;) (expression_statement "CloneString(&draw_info_01->primitive,local_216c);" (call_expression "CloneString(&draw_info_01->primitive,local_216c)" identifier (argument_list "(&draw_info_01->primitive,local_216c)" ( (pointer_expression "&draw_info_01->primitive" & (field_expression "draw_info_01->primitive" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "DrawImage(image,draw_info_01,exception);" (call_expression "DrawImage(image,draw_info_01,exception)" identifier (argument_list "(image,draw_info_01,exception)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" else (if_statement "if (draw_info_00->decorate == OverlineDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" if (parenthesized_expression "(draw_info_00->decorate == OverlineDecoration)" ( (binary_expression "draw_info_00->decorate == OverlineDecoration" (field_expression "draw_info_00->decorate" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" { (expression_statement "(draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy;" (assignment_expression "(draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(draw_info_01->affine).ty -\n               ((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) - (binary_expression "((metrics.ascent + metrics.descent) - metrics.underline_position) *\n               (draw_info->affine).sy" (parenthesized_expression "((metrics.ascent + metrics.descent) - metrics.underline_position)" ( (binary_expression "(metrics.ascent + metrics.descent) - metrics.underline_position" (parenthesized_expression "(metrics.ascent + metrics.descent)" ( (binary_expression "metrics.ascent + metrics.descent" (field_expression "metrics.ascent" identifier . field_identifier) + (field_expression "metrics.descent" identifier . field_identifier)) )) - (field_expression "metrics.underline_position" identifier . field_identifier)) )) * (field_expression "(draw_info->affine).sy" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "CloneString(&draw_info_01->primitive,local_216c);" (call_expression "CloneString(&draw_info_01->primitive,local_216c)" identifier (argument_list "(&draw_info_01->primitive,local_216c)" ( (pointer_expression "&draw_info_01->primitive" & (field_expression "draw_info_01->primitive" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "DrawImage(image,draw_info_01,exception);" (call_expression "DrawImage(image,draw_info_01,exception)" identifier (argument_list "(image,draw_info_01,exception)" ( identifier , identifier , identifier ))) ;) })))) (expression_statement "MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception);" (assignment_expression "MVar13 = RenderType(image,draw_info_00,&offset,&metrics,exception)" identifier = (call_expression "RenderType(image,draw_info_00,&offset,&metrics,exception)" identifier (argument_list "(image,draw_info_00,&offset,&metrics,exception)" ( identifier , identifier , (pointer_expression "&offset" & identifier) , (pointer_expression "&metrics" & identifier) , identifier )))) ;) (if_statement "if (MVar13 == MagickFalse) break;" if (parenthesized_expression "(MVar13 == MagickFalse)" ( (binary_expression "MVar13 == MagickFalse" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (draw_info_00->decorate == LineThroughDecoration) {\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" if (parenthesized_expression "(draw_info_00->decorate == LineThroughDecoration)" ( (binary_expression "draw_info_00->decorate == LineThroughDecoration" (field_expression "draw_info_00->decorate" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          (draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;\n          CloneString(&draw_info_01->primitive,local_216c);\n          DrawImage(image,draw_info_01,exception);\n        }" { (expression_statement "(draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124;" (assignment_expression "(draw_info_01->affine).ty =\n               (draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(draw_info_01->affine).ty -\n               (metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124" (field_expression "(draw_info_01->affine).ty" (parenthesized_expression "(draw_info_01->affine)" ( (field_expression "draw_info_01->affine" identifier -> field_identifier) )) . field_identifier) - (binary_expression "(metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy * (double)DAT_0029f124" (binary_expression "(metrics.descent + metrics.descent + dVar8 + metrics.underline_position) *\n               (draw_info->affine).sy" (parenthesized_expression "(metrics.descent + metrics.descent + dVar8 + metrics.underline_position)" ( (binary_expression "metrics.descent + metrics.descent + dVar8 + metrics.underline_position" (binary_expression "metrics.descent + metrics.descent + dVar8" (binary_expression "metrics.descent + metrics.descent" (field_expression "metrics.descent" identifier . field_identifier) + (field_expression "metrics.descent" identifier . field_identifier)) + identifier) + (field_expression "metrics.underline_position" identifier . field_identifier)) )) * (field_expression "(draw_info->affine).sy" (parenthesized_expression "(draw_info->affine)" ( (field_expression "draw_info->affine" identifier -> field_identifier) )) . field_identifier)) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "CloneString(&draw_info_01->primitive,local_216c);" (call_expression "CloneString(&draw_info_01->primitive,local_216c)" identifier (argument_list "(&draw_info_01->primitive,local_216c)" ( (pointer_expression "&draw_info_01->primitive" & (field_expression "draw_info_01->primitive" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "DrawImage(image,draw_info_01,exception);" (call_expression "DrawImage(image,draw_info_01,exception)" identifier (argument_list "(image,draw_info_01,exception)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0003a60a:\n        local_2188 = local_2188 + 1;" statement_identifier : (expression_statement "local_2188 = local_2188 + 1;" (assignment_expression "local_2188 = local_2188 + 1" identifier = (binary_expression "local_2188 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar11 = (char *)local_2174[local_2188];" (assignment_expression "pcVar11 = (char *)local_2174[local_2188]" identifier = (cast_expression "(char *)local_2174[local_2188]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_2174[local_2188]" identifier [ identifier ]))) ;) }) while (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) })) (expression_statement "DestroyDrawInfo(draw_info_01);" (call_expression "DestroyDrawInfo(draw_info_01)" identifier (argument_list "(draw_info_01)" ( identifier ))) ;) (expression_statement "DestroyDrawInfo(draw_info_00);" (call_expression "DestroyDrawInfo(draw_info_00)" identifier (argument_list "(draw_info_00)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(local_2174);" (call_expression "RelinquishMagickMemory(local_2174)" identifier (argument_list "(local_2174)" ( identifier ))) ;) (expression_statement "DestroyString(string);" (call_expression "DestroyString(string)" identifier (argument_list "(string)" ( identifier ))) ;) (labeled_statement "LAB_00039fee:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar4 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar4 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return MVar13;" return identifier ;) })))
(translation_unit "int AnnotateImage(int param_1,int param_2,undefined4 param_3)\n\n{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return iVar15;\n}\n\n" (function_definition "int AnnotateImage(int param_1,int param_2,undefined4 param_3)\n\n{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return iVar15;\n}" primitive_type (function_declarator "AnnotateImage(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return iVar15;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "int local_2188;" primitive_type identifier ;) (declaration "ulonglong local_217c;" type_identifier identifier ;) (declaration "undefined4 *local_2174;" type_identifier (pointer_declarator "*local_2174" * identifier) ;) (declaration "undefined1 *local_216c;" type_identifier (pointer_declarator "*local_216c" * identifier) ;) (declaration "uint local_215c;" type_identifier identifier ;) (declaration "int local_2154;" primitive_type identifier ;) (declaration "double local_2134;" primitive_type identifier ;) (declaration "double local_212c;" primitive_type identifier ;) (declaration "uint local_2124;" type_identifier identifier ;) (declaration "uint uStack_2120;" type_identifier identifier ;) (declaration "undefined1 local_2114 [16];" type_identifier (array_declarator "local_2114 [16]" identifier [ number_literal ]) ;) (declaration "double local_2104;" primitive_type identifier ;) (declaration "double local_20fc;" primitive_type identifier ;) (declaration "undefined4 local_20e8 [20];" type_identifier (array_declarator "local_20e8 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 local_2098 [4];" type_identifier (array_declarator "local_2098 [4]" identifier [ number_literal ]) ;) (declaration "double local_2088;" primitive_type identifier ;) (declaration "double local_2080;" primitive_type identifier ;) (declaration "undefined4 local_2078;" type_identifier identifier ;) (declaration "undefined4 uStack_2074;" type_identifier identifier ;) (declaration "double local_2060;" primitive_type identifier ;) (declaration "undefined4 local_2058;" type_identifier identifier ;) (declaration "undefined4 local_2054;" type_identifier identifier ;) (declaration "undefined4 local_2030;" type_identifier identifier ;) (declaration "undefined4 local_202c;" type_identifier identifier ;) (declaration "undefined1 local_2020 [4096];" type_identifier (array_declarator "local_2020 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x39f49;" (assignment_expression "uStack_14 = 0x39f49" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/annotate.c"" " string_content ") , (string_literal ""AnnotateImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" { (expression_statement "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");" (call_expression "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" identifier (argument_list "("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" ( (string_literal ""draw_info != (DrawInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x358) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x358) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x358)" * (cast_expression "(int *)(param_2 + 0x358)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x358)" ( (binary_expression "param_2 + 0x358" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" { (expression_statement "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");" (call_expression "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" identifier (argument_list "("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" ( (string_literal ""draw_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/annotate.c"" " string_content ") , number_literal , (string_literal ""AnnotateImage"" " string_content ") ))) ;) })) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;" if (parenthesized_expression "((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0'))" ( (binary_expression "(*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')" (parenthesized_expression "(*(char **)(param_2 + 0x238) == (char *)0x0)" ( (binary_expression "*(char **)(param_2 + 0x238) == (char *)0x0" (pointer_expression "*(char **)(param_2 + 0x238)" * (cast_expression "(char **)(param_2 + 0x238)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x238)" ( (binary_expression "param_2 + 0x238" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')" ( (comma_expression "iVar15 = 1, **(char **)(param_2 + 0x238) == '\0'" (assignment_expression "iVar15 = 1" identifier = number_literal) , (binary_expression "**(char **)(param_2 + 0x238) == '\0'" (pointer_expression "**(char **)(param_2 + 0x238)" * (pointer_expression "*(char **)(param_2 + 0x238)" * (cast_expression "(char **)(param_2 + 0x238)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x238)" ( (binary_expression "param_2 + 0x238" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00039fee;" goto statement_identifier ;)) (expression_statement "iVar8 = CloneDrawInfo(0,param_2);" (assignment_expression "iVar8 = CloneDrawInfo(0,param_2)" identifier = (call_expression "CloneDrawInfo(0,param_2)" identifier (argument_list "(0,param_2)" ( number_literal , identifier )))) ;) (expression_statement "pcVar2 = *(char **)(iVar8 + 0x238);" (assignment_expression "pcVar2 = *(char **)(iVar8 + 0x238)" identifier = (pointer_expression "*(char **)(iVar8 + 0x238)" * (cast_expression "(char **)(iVar8 + 0x238)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x238)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x238) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x238) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x238)" * (cast_expression "(undefined4 *)(iVar8 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x238)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = CloneDrawInfo(0,param_2);" (assignment_expression "iVar9 = CloneDrawInfo(0,param_2)" identifier = (call_expression "CloneDrawInfo(0,param_2)" identifier (argument_list "(0,param_2)" ( number_literal , identifier )))) ;) (expression_statement "cVar7 = *pcVar2;" (assignment_expression "cVar7 = *pcVar2" identifier = (pointer_expression "*pcVar2" * identifier)) ;) (if_statement "if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }" { (expression_statement "local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);" (assignment_expression "local_2174 = (undefined4 *)AcquireQuantumMemory(2,4)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(2,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(2,4)" identifier (argument_list "(2,4)" ( number_literal , number_literal ))))) ;) (if_statement "if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;" if (parenthesized_expression "(local_2174 == (undefined4 *)0x0)" ( (binary_expression "local_2174 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003ae11;" goto statement_identifier ;)) (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" identifier = number_literal) ;) (labeled_statement "LAB_0003a0a2:\n    iVar15 = 0;" statement_identifier : (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;)) (expression_statement "pcVar13 = pcVar2;" (assignment_expression "pcVar13 = pcVar2" identifier = identifier) ;) (do_statement "do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);" do (compound_statement "{\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    }" { (expression_statement "local_2174[iVar15] = pcVar13;" (assignment_expression "local_2174[iVar15] = pcVar13" (subscript_expression "local_2174[iVar15]" identifier [ identifier ]) = identifier) ;) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar17 = pcVar13 + 1;" (assignment_expression "pcVar17 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = pcVar17;" (assignment_expression "pcVar14 = pcVar17" identifier = identifier) ;) (if_statement "if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }" { (if_statement "if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }" if (parenthesized_expression "((cVar7 != '\n') && (cVar7 != '\r'))" ( (binary_expression "(cVar7 != '\n') && (cVar7 != '\r')" (parenthesized_expression "(cVar7 != '\n')" ( (binary_expression "cVar7 != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 != '\r')" ( (binary_expression "cVar7 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) ))) )) (compound_statement "{\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }" { (do_statement "do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));" do (compound_statement "{\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          }" { (expression_statement "pcVar13 = pcVar17;" (assignment_expression "pcVar13 = pcVar17" identifier = identifier) ;) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (if_statement "if (cVar7 == '\0') goto LAB_0003a0fa;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003a0fa;" goto statement_identifier ;)) (expression_statement "pcVar17 = pcVar14;" (assignment_expression "pcVar17 = pcVar14" identifier = identifier) ;) }) while (parenthesized_expression "((cVar7 != '\r') && (cVar7 != '\n'))" ( (binary_expression "(cVar7 != '\r') && (cVar7 != '\n')" (parenthesized_expression "(cVar7 != '\r')" ( (binary_expression "cVar7 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 != '\n')" ( (binary_expression "cVar7 != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) ))) )) ;) })) (expression_statement "pcVar14 = pcVar17;" (assignment_expression "pcVar14 = pcVar17" identifier = identifier) ;) (if_statement "if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }" if (parenthesized_expression "(cVar7 == '\r')" ( (binary_expression "cVar7 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }" { (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar14 = pcVar17 + 1;" (assignment_expression "pcVar14 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "pcVar13 = pcVar17;" (assignment_expression "pcVar13 = pcVar17" identifier = identifier) ;) })) })) (labeled_statement "LAB_0003a0fa:\n      iVar15 = iVar15 + 1;" statement_identifier : (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;)) (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar13 = pcVar14;" (assignment_expression "pcVar13 = pcVar14" identifier = identifier) ;) }) while (parenthesized_expression "(iVar15 < (int)local_215c)" ( (binary_expression "iVar15 < (int)local_215c" identifier < (cast_expression "(int)local_215c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "puVar10 = local_2174 + local_215c;" (assignment_expression "puVar10 = local_2174 + local_215c" identifier = (binary_expression "local_2174 + local_215c" identifier + identifier)) ;) }) (else_clause "else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" else (compound_statement "{\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" { (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" identifier = number_literal) ;) (expression_statement "pcVar13 = pcVar2;" (assignment_expression "pcVar13 = pcVar2" identifier = identifier) ;) (do_statement "do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');" do (compound_statement "{\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    }" { (expression_statement "uVar11 = local_215c + 1;" (assignment_expression "uVar11 = local_215c + 1" identifier = (binary_expression "local_215c + 1" identifier + number_literal)) ;) (if_statement "if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" if (parenthesized_expression "(cVar7 == '\n')" ( (binary_expression "cVar7 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" { (expression_statement "uVar11 = local_215c + 2;" (assignment_expression "uVar11 = local_215c + 2" identifier = (binary_expression "local_215c + 2" identifier + number_literal)) ;) (expression_statement "local_215c = local_215c + 1;" (assignment_expression "local_215c = local_215c + 1" identifier = (binary_expression "local_215c + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) }) while (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);" (assignment_expression "puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(uVar11,4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar11,4)" identifier (argument_list "(uVar11,4)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }" if (parenthesized_expression "(puVar10 == (undefined4 *)0x0)" ( (binary_expression "puVar10 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }" { (labeled_statement "LAB_0003ae11:\n      DestroyDrawInfo(iVar9);" statement_identifier : (expression_statement "DestroyDrawInfo(iVar9);" (call_expression "DestroyDrawInfo(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;)) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "DestroyDrawInfo(iVar8);" (call_expression "DestroyDrawInfo(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "DestroyString(pcVar2);" (call_expression "DestroyString(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (goto_statement "goto LAB_00039fee;" goto statement_identifier ;) })) (expression_statement "local_2174 = puVar10;" (assignment_expression "local_2174 = puVar10" identifier = identifier) ;) (if_statement "if (0 < (int)local_215c) goto LAB_0003a0a2;" if (parenthesized_expression "(0 < (int)local_215c)" ( (binary_expression "0 < (int)local_215c" number_literal < (cast_expression "(int)local_215c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003a0a2;" goto statement_identifier ;)) }))) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "SetGeometry(param_1,&local_2124);" (call_expression "SetGeometry(param_1,&local_2124)" identifier (argument_list "(param_1,&local_2124)" ( identifier , (pointer_expression "&local_2124" & identifier) ))) ;) (expression_statement "SetGeometryInfo(local_2114);" (call_expression "SetGeometryInfo(local_2114)" identifier (argument_list "(local_2114)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 4) != 0)" ( (binary_expression "*(int *)(iVar9 + 4) != 0" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }" { (expression_statement "ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);" (call_expression "ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3)" identifier (argument_list "(param_1,*(int *)(iVar9 + 4),&local_2124,param_3)" ( identifier , (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) , (pointer_expression "&local_2124" & identifier) , identifier ))) ;) (expression_statement "ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);" (call_expression "ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114)" identifier (argument_list "(*(undefined4 *)(iVar9 + 4),local_2114)" ( (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) , identifier ))) ;) })) (expression_statement "iVar15 = SetImageStorageClass(param_1,1,param_3);" (assignment_expression "iVar15 = SetImageStorageClass(param_1,1,param_3)" identifier = (call_expression "SetImageStorageClass(param_1,1,param_3)" identifier (argument_list "(param_1,1,param_3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }" { (if_statement "if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }" if (parenthesized_expression "((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3))" ( (binary_expression "(*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)" (parenthesized_expression "(*(int *)(param_1 + 4) == 0x21)" ( (binary_expression "*(int *)(param_1 + 4) == 0x21" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(param_1 + 4) == 3)" ( (binary_expression "*(int *)(param_1 + 4) == 3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      SetImageColorspace(param_1,0x17,param_3);\n    }" { (expression_statement "SetImageColorspace(param_1,0x17,param_3);" (call_expression "SetImageColorspace(param_1,0x17,param_3)" identifier (argument_list "(param_1,0x17,param_3)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "puVar10 = local_2098;" (assignment_expression "puVar10 = local_2098" identifier = identifier) ;) (for_statement "for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }" for ( (assignment_expression "iVar15 = 0x1e" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }" { (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "pcVar13 = (char *)*local_2174;" (assignment_expression "pcVar13 = (char *)*local_2174" identifier = (cast_expression "(char *)*local_2174" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2174" * identifier))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar15 = 1;\n    }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" else (compound_statement "{\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" { (expression_statement "local_2188 = 0;" (assignment_expression "local_2188 = 0" identifier = number_literal) ;) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (do_statement "do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);" do (compound_statement "{\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      }" { (if_statement "if (*pcVar13 == '\0') goto LAB_0003a60a;" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003a60a;" goto statement_identifier ;)) (expression_statement "*(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);" (assignment_expression "*(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208)" (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))) = (binary_expression "local_2104 - (double)*(int *)(param_1 + 0x208)" identifier - (cast_expression "(double)*(int *)(param_1 + 0x208)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) ))))))) ;) (expression_statement "*(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);" (assignment_expression "*(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c)" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "local_20fc - (double)*(int *)(param_1 + 0x20c)" identifier - (cast_expression "(double)*(int *)(param_1 + 0x20c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0x20c)" * (cast_expression "(int *)(param_1 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20c)" ( (binary_expression "param_1 + 0x20c" identifier + number_literal) ))))))) ;) (expression_statement "CloneString(iVar8 + 0x238,pcVar13);" (call_expression "CloneString(iVar8 + 0x238,pcVar13)" identifier (argument_list "(iVar8 + 0x238,pcVar13)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) , identifier ))) ;) (if_statement "if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }" if (parenthesized_expression "(((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1))" ( (binary_expression "((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)" (parenthesized_expression "((double)CONCAT44(uStack_2074,local_2078) == 0.0)" ( (binary_expression "(double)CONCAT44(uStack_2074,local_2078) == 0.0" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar8 + 0x26c) != 1)" ( (binary_expression "*(int *)(iVar8 + 0x26c) != 1" (pointer_expression "*(int *)(iVar8 + 0x26c)" * (cast_expression "(int *)(iVar8 + 0x26c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x26c)" ( (binary_expression "iVar8 + 0x26c" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }" { (expression_statement "GetTypeMetrics(param_1,iVar8,local_2098,param_3);" (call_expression "GetTypeMetrics(param_1,iVar8,local_2098,param_3)" identifier (argument_list "(param_1,iVar8,local_2098,param_3)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" identifier = (cast_expression "(int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" identifier (argument_list "(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" ( (call_expression "ROUND((local_2088 - local_2080) + (double)DAT_0029f124)" identifier (argument_list "((local_2088 - local_2080) + (double)DAT_0029f124)" ( (binary_expression "(local_2088 - local_2080) + (double)DAT_0029f124" (parenthesized_expression "(local_2088 - local_2080)" ( (binary_expression "local_2088 - local_2080" identifier - identifier) )) + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )))))) ;) (expression_statement "iVar15 = local_2154;" (assignment_expression "iVar15 = local_2154" identifier = identifier) ;) (if_statement "if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }" if (parenthesized_expression "(local_2154 == 0)" ( (binary_expression "local_2154 == 0" identifier == number_literal) )) (compound_statement "{\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }" { (expression_statement "local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));" (assignment_expression "local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c))" identifier = (cast_expression "(int)(longlong)ROUND(*(double *)(param_2 + 0x25c))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(*(double *)(param_2 + 0x25c))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(param_2 + 0x25c))" identifier (argument_list "(*(double *)(param_2 + 0x25c))" ( (pointer_expression "*(double *)(param_2 + 0x25c)" * (cast_expression "(double *)(param_2 + 0x25c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x25c)" ( (binary_expression "param_2 + 0x25c" identifier + number_literal) )))) )))))) ;) (expression_statement "iVar15 = local_2154;" (assignment_expression "iVar15 = local_2154" identifier = identifier) ;) })) (expression_statement "dVar1 = (double)local_2188;" (assignment_expression "dVar1 = (double)local_2188" identifier = (cast_expression "(double)local_2188" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" identifier = (cast_expression "(int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" identifier (argument_list "(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" ( (call_expression "ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348))" identifier (argument_list "(DAT_0029f124 + (float)*(double *)(param_2 + 0x348))" ( (binary_expression "DAT_0029f124 + (float)*(double *)(param_2 + 0x348)" identifier + (cast_expression "(float)*(double *)(param_2 + 0x348)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x348)" * (cast_expression "(double *)(param_2 + 0x348)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x348)" ( (binary_expression "param_2 + 0x348" identifier + number_literal) )))))) ))) )))))) ;) (expression_statement "local_217c = (ulonglong)(uint)(local_2154 + iVar15);" (assignment_expression "local_217c = (ulonglong)(uint)(local_2154 + iVar15)" identifier = (call_expression "(ulonglong)(uint)(local_2154 + iVar15)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(local_2154 + iVar15)" ( (binary_expression "local_2154 + iVar15" identifier + identifier) )))) ;) (expression_statement "dVar6 = (double)local_217c;" (assignment_expression "dVar6 = (double)local_217c" identifier = (cast_expression "(double)local_217c" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (switch_statement "switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }" switch (parenthesized_expression "(*(undefined4 *)(iVar8 + 0x26c))" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x26c)" * (cast_expression "(undefined4 *)(iVar8 + 0x26c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x26c)" ( (binary_expression "iVar8 + 0x26c" identifier + number_literal) )))) )) (compound_statement "{\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }" { (case_statement "case 0:" case number_literal :) (case_statement "default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;" default : (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) ;) (expression_statement "local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);" (assignment_expression "local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40)" identifier = (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" ( (binary_expression "local_2080 + local_2088" identifier + identifier) )) * (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) ))))))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;" (assignment_expression "local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" identifier = (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;" (assignment_expression "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" identifier = (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124)" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124)" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(double)local_2124 * (double)DAT_0029f124" (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) + (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" ( (binary_expression "local_2080 + local_2088" identifier + identifier) )) * (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) ))))))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;" (assignment_expression "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" identifier = (binary_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (parenthesized_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       )" ( (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 != 0)" ( (binary_expression "local_2124 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;" (assignment_expression "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0" identifier = (binary_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0" (parenthesized_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28))" ( (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))))) )) + (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" ( (binary_expression "local_2080 + local_2088" identifier + identifier) )) * (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))))) )) - number_literal)) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);" (assignment_expression "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" identifier = (binary_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       )" ( (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;" (assignment_expression "local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124" identifier = (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30)" (binary_expression "(double)DAT_0029f124 * dVar4" (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "(double)uStack_2120 * (double)DAT_0029f124" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar5 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar5" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4)" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(double)local_2124 * dVar4" (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * identifier)) )))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;" (assignment_expression "local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" identifier = (binary_expression "dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" (binary_expression "dVar5 * *(double *)(iVar9 + 0x30) * dVar4" (binary_expression "dVar5 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier) + (parenthesized_expression "((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" ( (binary_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4)" ( (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "(double)uStack_2120 * dVar4" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 != 0)" ( (binary_expression "local_2124 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * identifier))) ;) (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0" identifier = (binary_expression "(*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))))) ))) )) - number_literal)) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 == 0)" ( (binary_expression "uStack_2120 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));" (assignment_expression "local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" identifier = (binary_expression "dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" (binary_expression "dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124" (binary_expression "dVar4 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) + (parenthesized_expression "((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" ( (binary_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124)" ( (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "(double)uStack_2120 * (double)DAT_0029f124" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" identifier = (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 != 0)" ( (binary_expression "uStack_2120 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);" (assignment_expression "dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" identifier = (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))))) ;) (expression_statement "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);" (assignment_expression "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" identifier = (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))))) ;) (goto_statement "goto code_r0x0003a70e;" goto statement_identifier ;)) (case_statement "case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 == 0)" ( (binary_expression "local_2124 == 0" identifier == number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" identifier = (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;" (assignment_expression "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" identifier = (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4)" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) + (binary_expression "(double)local_2124 * dVar4" (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier) * identifier))) ;) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 != 0)" ( (binary_expression "uStack_2120 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;" (assignment_expression "dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" identifier = (binary_expression "((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (parenthesized_expression "((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6)" ( (binary_expression "(double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);" (assignment_expression "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" identifier = (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))))) ;) (labeled_statement "code_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);" statement_identifier : (expression_statement "iVar15 = *(int *)(iVar8 + 0x268);" (assignment_expression "iVar15 = *(int *)(iVar8 + 0x268)" identifier = (pointer_expression "*(int *)(iVar8 + 0x268)" * (cast_expression "(int *)(iVar8 + 0x268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x268)" ( (binary_expression "iVar8 + 0x268" identifier + number_literal) ))))) ;)) (expression_statement "local_212c = (dVar3 - dVar4 * dVar6) + local_2080;" (assignment_expression "local_212c = (dVar3 - dVar4 * dVar6) + local_2080" identifier = (binary_expression "(dVar3 - dVar4 * dVar6) + local_2080" (parenthesized_expression "(dVar3 - dVar4 * dVar6)" ( (binary_expression "dVar3 - dVar4 * dVar6" identifier - (binary_expression "dVar4 * dVar6" identifier * identifier)) )) + identifier)) ;) (goto_statement "goto joined_r0x0003a72a;" goto statement_identifier ;)) (case_statement "case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;" case number_literal : (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" identifier = number_literal) ;) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" if (parenthesized_expression "(local_2124 != 0)" ( (binary_expression "local_2124 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar3 = -1.0;\n          }" { (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" identifier = number_literal) ;) })) (expression_statement "dVar4 = 1.0;" (assignment_expression "dVar4 = 1.0" identifier = number_literal) ;) (expression_statement "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;" (assignment_expression "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0" identifier = (binary_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0" (parenthesized_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6)" ( (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" ( (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (cast_expression "(double)local_2124" ( (type_descriptor "double" primitive_type) ) identifier)) + (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" identifier * (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))))) )) - (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) ))) * identifier)) )) - number_literal)) ;) (if_statement "if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }" if (parenthesized_expression "(uStack_2120 != 0)" ( (binary_expression "uStack_2120 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar4 = -1.0;\n          }" { (expression_statement "dVar4 = -1.0;" (assignment_expression "dVar4 = -1.0" identifier = number_literal) ;) })) (expression_statement "local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;" (assignment_expression "local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080" identifier = (binary_expression "((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080" (parenthesized_expression "((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6)" ( (binary_expression "(((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6" (parenthesized_expression "(((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" ( (binary_expression "((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6)" ( (binary_expression "(double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40)" (cast_expression "(double)uStack_2120" ( (type_descriptor "double" primitive_type) ) identifier) + (binary_expression "dVar4 * *(double *)(iVar9 + 0x40)" identifier * (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) + (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) )))) * identifier) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))))) )) - (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" ( (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" ( (type_descriptor "double" primitive_type) ) identifier) - number_literal) )) * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier)) )) + identifier)) ;)) })) (expression_statement "iVar15 = *(int *)(iVar8 + 0x268);" (assignment_expression "iVar15 = *(int *)(iVar8 + 0x268)" identifier = (pointer_expression "*(int *)(iVar8 + 0x268)" * (cast_expression "(int *)(iVar8 + 0x268)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x268)" ( (binary_expression "iVar8 + 0x268" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" statement_identifier : (if_statement "if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" if (parenthesized_expression "(iVar15 == 2)" ( (binary_expression "iVar15 == 2" identifier == number_literal) )) (compound_statement "{\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }" { (expression_statement "local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" identifier = (binary_expression "(*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6)" ( (binary_expression "*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))) + (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier)) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;" (assignment_expression "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" identifier = (binary_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6)" ( (binary_expression "*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) + (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) }) (else_clause "else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" else (if_statement "if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" if (parenthesized_expression "(iVar15 == 3)" ( (binary_expression "iVar15 == 3" identifier == number_literal) )) (compound_statement "{\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }" { (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" identifier = (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38))" ( (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) ))))) )) - (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" * (cast_expression "(double *)(iVar9 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) * (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier ))))))) ;) (expression_statement "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);" (assignment_expression "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" identifier = (binary_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6)" ( (binary_expression "*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) + (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier)) )) - (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_2074,local_2078)" identifier (argument_list "(uStack_2074,local_2078)" ( identifier , identifier )))) * (pointer_expression "*(double *)(iVar9 + 0x20)" * (cast_expression "(double *)(iVar9 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) ))))))) ;) }) (else_clause "else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" else (if_statement "if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" if (parenthesized_expression "(iVar15 == 1)" ( (binary_expression "iVar15 == 1" identifier == number_literal) )) (compound_statement "{\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" { (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" identifier = (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" * (cast_expression "(double *)(iVar9 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) * identifier) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))))) ;) (expression_statement "local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);" (assignment_expression "local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40)" identifier = (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40)" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" identifier * (pointer_expression "*(double *)(iVar9 + 0x30)" * (cast_expression "(double *)(iVar9 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) * identifier) + (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))))) ;) }))))))) (if_statement "if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }" if (parenthesized_expression "(*(double *)(param_2 + 0x128) != 0.0)" ( (binary_expression "*(double *)(param_2 + 0x128) != 0.0" (pointer_expression "*(double *)(param_2 + 0x128)" * (cast_expression "(double *)(param_2 + 0x128)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x128)" ( (binary_expression "param_2 + 0x128" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }" { (expression_statement "iVar15 = CloneDrawInfo(0,0);" (assignment_expression "iVar15 = CloneDrawInfo(0,0)" identifier = (call_expression "CloneDrawInfo(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "puVar10 = (undefined4 *)(param_2 + 0xe8);" (assignment_expression "puVar10 = (undefined4 *)(param_2 + 0xe8)" identifier = (cast_expression "(undefined4 *)(param_2 + 0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe8)" ( (binary_expression "param_2 + 0xe8" identifier + number_literal) )))) ;) (expression_statement "puVar16 = (undefined4 *)(iVar15 + 0x48);" (assignment_expression "puVar16 = (undefined4 *)(iVar15 + 0x48)" identifier = (cast_expression "(undefined4 *)(iVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x48)" ( (binary_expression "iVar15 + 0x48" identifier + number_literal) )))) ;) (for_statement "for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "iVar12 = 0x14" identifier = number_literal) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);" (assignment_expression "*(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18)" (pointer_expression "*(undefined4 *)(iVar15 + 0x18)" * (cast_expression "(undefined4 *)(iVar15 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x1c)" * (cast_expression "(undefined4 *)(iVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);" (assignment_expression "*(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20)" (pointer_expression "*(undefined4 *)(iVar15 + 0x20)" * (cast_expression "(undefined4 *)(iVar15 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x20)" ( (binary_expression "iVar15 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);" (assignment_expression "*(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24)" (pointer_expression "*(undefined4 *)(iVar15 + 0x24)" * (cast_expression "(undefined4 *)(iVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x24)" ( (binary_expression "iVar15 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x24)" * (cast_expression "(undefined4 *)(param_2 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);" (assignment_expression "*(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28)" (pointer_expression "*(undefined4 *)(iVar15 + 0x28)" * (cast_expression "(undefined4 *)(iVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x28)" ( (binary_expression "iVar15 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x28)" * (cast_expression "(undefined4 *)(param_2 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x2c)" * (cast_expression "(undefined4 *)(iVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" * (cast_expression "(undefined4 *)(param_2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "dVar1 = *(double *)(param_2 + 0x28);" (assignment_expression "dVar1 = *(double *)(param_2 + 0x28)" identifier = (pointer_expression "*(double *)(param_2 + 0x28)" * (cast_expression "(double *)(param_2 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "*(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30)" (pointer_expression "*(undefined4 *)(iVar15 + 0x30)" * (cast_expression "(undefined4 *)(iVar15 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x30)" ( (binary_expression "iVar15 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x30)" * (cast_expression "(undefined4 *)(param_2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(iVar15 + 0x34)" * (cast_expression "(undefined4 *)(iVar15 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x34)" * (cast_expression "(undefined4 *)(param_2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "*(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38)" (pointer_expression "*(undefined4 *)(iVar15 + 0x38)" * (cast_expression "(undefined4 *)(iVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x38)" * (cast_expression "(undefined4 *)(param_2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x3c)" * (cast_expression "(undefined4 *)(iVar15 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" * (cast_expression "(undefined4 *)(param_2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;" (assignment_expression "*(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088" (pointer_expression "*(double *)(iVar15 + 0x38)" * (cast_expression "(double *)(iVar15 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) = (binary_expression "local_2134 - dVar1 * local_2088" identifier - (binary_expression "dVar1 * local_2088" identifier * identifier))) ;) (expression_statement "*(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);" (assignment_expression "*(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar15 + 0x40)" * (cast_expression "(double *)(iVar15 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x40)" ( (binary_expression "iVar15 + 0x40" identifier + number_literal) )))) = (binary_expression "local_212c - local_2088 * *(double *)(param_2 + 0x30)" identifier - (binary_expression "local_2088 * *(double *)(param_2 + 0x30)" identifier * (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );" (call_expression "FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            )" identifier (argument_list "(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            )" ( identifier , number_literal , (string_literal ""rectangle 0.0,0.0 %g,%g"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "CloneString(iVar15,local_1020);" (call_expression "CloneString(iVar15,local_1020)" identifier (argument_list "(iVar15,local_1020)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar15,param_3);" (call_expression "DrawImage(param_1,iVar15,param_3)" identifier (argument_list "(param_1,iVar15,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "DestroyDrawInfo(iVar15);" (call_expression "DestroyDrawInfo(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) })) (expression_statement "local_216c = local_1020;" (assignment_expression "local_216c = local_1020" identifier = identifier) ;) (expression_statement "*(double *)(iVar9 + 0x38) = local_2134;" (assignment_expression "*(double *)(iVar9 + 0x38) = local_2134" (pointer_expression "*(double *)(iVar9 + 0x38)" * (cast_expression "(double *)(iVar9 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(double *)(iVar9 + 0x40) = local_212c;" (assignment_expression "*(double *)(iVar9 + 0x40) = local_212c" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "dVar1 = *(double *)(iVar9 + 0xd8);" (assignment_expression "dVar1 = *(double *)(iVar9 + 0xd8)" identifier = (pointer_expression "*(double *)(iVar9 + 0xd8)" * (cast_expression "(double *)(iVar9 + 0xd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xd8)" ( (binary_expression "iVar9 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x48);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x48)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x48)" ( (binary_expression "iVar9 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar16 = local_20e8;" (assignment_expression "puVar16 = local_20e8" identifier = identifier) ;) (for_statement "for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" for ( (assignment_expression "iVar15 = 0x14" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(dVar1 != 0.0)" ( (binary_expression "dVar1 != 0.0" identifier != number_literal) )) (compound_statement "{\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }" { (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x98);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x98)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x98)" ( (binary_expression "iVar9 + 0x98" identifier + number_literal) )))) ;) (expression_statement "puVar16 = local_20e8;" (assignment_expression "puVar16 = local_20e8" identifier = identifier) ;) (for_statement "for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "iVar15 = 0x14" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })) (expression_statement "QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);" (call_expression "QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3)" identifier (argument_list "(param_1,local_20e8,0x7fffffff,local_2020,param_3)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);" (call_expression "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074)" identifier (argument_list "(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074)" ( identifier , number_literal , (string_literal ""stroke %s stroke-width %g line 0,0 %g,0"" " string_content ") , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 2)" ( (binary_expression "*(int *)(iVar8 + 0x230) == 2" (pointer_expression "*(int *)(iVar8 + 0x230)" * (cast_expression "(int *)(iVar8 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" { (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) - (binary_expression "*(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) * identifier))) ;) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" identifier (argument_list "(iVar9,local_216c)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" identifier (argument_list "(param_1,iVar9,param_3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" else (if_statement "if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 3)" ( (binary_expression "*(int *)(iVar8 + 0x230) == 3" (pointer_expression "*(int *)(iVar8 + 0x230)" * (cast_expression "(int *)(iVar8 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" { (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) - (binary_expression "((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (parenthesized_expression "((local_2088 + local_2080) - local_2060)" ( (binary_expression "(local_2088 + local_2080) - local_2060" (parenthesized_expression "(local_2088 + local_2080)" ( (binary_expression "local_2088 + local_2080" identifier + identifier) )) - identifier) )) * (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" identifier (argument_list "(iVar9,local_216c)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" identifier (argument_list "(param_1,iVar9,param_3)" ( identifier , identifier , identifier ))) ;) })))) (expression_statement "iVar15 = FUN_00039740(local_2098,param_3);" (assignment_expression "iVar15 = FUN_00039740(local_2098,param_3)" identifier = (call_expression "FUN_00039740(local_2098,param_3)" identifier (argument_list "(local_2098,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x230) == 4" (pointer_expression "*(int *)(iVar8 + 0x230)" * (cast_expression "(int *)(iVar8 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" { (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) = (binary_expression "*(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (pointer_expression "*(double *)(iVar9 + 0x40)" * (cast_expression "(double *)(iVar9 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) )))) - (binary_expression "(local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (binary_expression "(local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30)" (parenthesized_expression "(local_2080 + local_2080 + dVar6 + local_2060)" ( (binary_expression "local_2080 + local_2080 + dVar6 + local_2060" (binary_expression "local_2080 + local_2080 + dVar6" (binary_expression "local_2080 + local_2080" identifier + identifier) + identifier) + identifier) )) * (pointer_expression "*(double *)(param_2 + 0x30)" * (cast_expression "(double *)(param_2 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) * (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)))) ;) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" identifier (argument_list "(iVar9,local_216c)" ( identifier , identifier ))) ;) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" identifier (argument_list "(param_1,iVar9,param_3)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0003a60a:\n        local_2188 = local_2188 + 1;" statement_identifier : (expression_statement "local_2188 = local_2188 + 1;" (assignment_expression "local_2188 = local_2188 + 1" identifier = (binary_expression "local_2188 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar13 = (char *)local_2174[local_2188];" (assignment_expression "pcVar13 = (char *)local_2174[local_2188]" identifier = (cast_expression "(char *)local_2174[local_2188]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_2174[local_2188]" identifier [ identifier ]))) ;) }) while (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) })) (expression_statement "DestroyDrawInfo(iVar9);" (call_expression "DestroyDrawInfo(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "DestroyDrawInfo(iVar8);" (call_expression "DestroyDrawInfo(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(local_2174);" (call_expression "RelinquishMagickMemory(local_2174)" identifier (argument_list "(local_2174)" ( identifier ))) ;) (expression_statement "DestroyString(pcVar2);" (call_expression "DestroyString(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (labeled_statement "LAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" { (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (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 IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_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 IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (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 , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) == 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 (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case LIT :) (case_statement default : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) - (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) )) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - LIT)) ;) (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 = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT))) ;) (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 = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )) - (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) * IDENT)) )))) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )) - (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * IDENT)) )))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ))) )) - LIT)) ;) (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 = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) - (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) ;) (break_statement break ;)) (case_statement case LIT : (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 = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) ))) * IDENT))) ;) (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 = (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )) - (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) * IDENT)) )) - (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) ))) * IDENT) * IDENT))) ;) (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 = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) )) - (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 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) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (binary_expression IDENT * IDENT)) )) + IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (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) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) )) - (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) ))) * IDENT)) )) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) )) - (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) - (binary_expression (binary_expression (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 IDENT + LIT) ))))) * IDENT)) )) + IDENT)) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT)) )) - (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * IDENT)) )) - (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * IDENT)) )) - (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))))))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , IDENT , IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 *)) ) (subscript_expression IDENT [ IDENT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int AnnotateImage(int param_1,int param_2,undefined4 param_3)\n\n{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return iVar15;\n}" (primitive_type "int") (function_declarator "AnnotateImage(int param_1,int param_2,undefined4 param_3)" (identifier "AnnotateImage") (parameter_list "(int param_1,int param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  double dVar1;\n  char *pcVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  undefined4 *puVar16;\n  char *pcVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  int local_2188;\n  ulonglong local_217c;\n  undefined4 *local_2174;\n  undefined1 *local_216c;\n  uint local_215c;\n  int local_2154;\n  double local_2134;\n  double local_212c;\n  uint local_2124;\n  uint uStack_2120;\n  undefined1 local_2114 [16];\n  double local_2104;\n  double local_20fc;\n  undefined4 local_20e8 [20];\n  undefined4 local_2098 [4];\n  double local_2088;\n  double local_2080;\n  undefined4 local_2078;\n  undefined4 uStack_2074;\n  double local_2060;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  undefined4 local_2030;\n  undefined4 local_202c;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  uStack_14 = 0x39f49;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }\n  if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }\n  iVar15 = 0;\n  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;\n  iVar8 = CloneDrawInfo(0,param_2);\n  pcVar2 = *(char **)(iVar8 + 0x238);\n  *(undefined4 *)(iVar8 + 0x238) = 0;\n  iVar9 = CloneDrawInfo(0,param_2);\n  cVar7 = *pcVar2;\n  if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }\n  *puVar10 = 0;\n  SetGeometry(param_1,&local_2124);\n  SetGeometryInfo(local_2114);\n  if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }\n  iVar15 = SetImageStorageClass(param_1,1,param_3);\n  if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }\n  DestroyDrawInfo(iVar9);\n  DestroyDrawInfo(iVar8);\n  RelinquishMagickMemory(local_2174);\n  DestroyString(pcVar2);\nLAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return iVar15;\n}" ({ "{") (declaration "double dVar1;" (primitive_type "double") (identifier "dVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "double dVar3;" (primitive_type "double") (identifier "dVar3") (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "double dVar6;" (primitive_type "double") (identifier "dVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "int local_2188;" (primitive_type "int") (identifier "local_2188") (; ";")) (declaration "ulonglong local_217c;" (type_identifier "ulonglong") (identifier "local_217c") (; ";")) (declaration "undefined4 *local_2174;" (type_identifier "undefined4") (pointer_declarator "*local_2174" (* "*") (identifier "local_2174")) (; ";")) (declaration "undefined1 *local_216c;" (type_identifier "undefined1") (pointer_declarator "*local_216c" (* "*") (identifier "local_216c")) (; ";")) (declaration "uint local_215c;" (type_identifier "uint") (identifier "local_215c") (; ";")) (declaration "int local_2154;" (primitive_type "int") (identifier "local_2154") (; ";")) (declaration "double local_2134;" (primitive_type "double") (identifier "local_2134") (; ";")) (declaration "double local_212c;" (primitive_type "double") (identifier "local_212c") (; ";")) (declaration "uint local_2124;" (type_identifier "uint") (identifier "local_2124") (; ";")) (declaration "uint uStack_2120;" (type_identifier "uint") (identifier "uStack_2120") (; ";")) (declaration "undefined1 local_2114 [16];" (type_identifier "undefined1") (array_declarator "local_2114 [16]" (identifier "local_2114") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "double local_2104;" (primitive_type "double") (identifier "local_2104") (; ";")) (declaration "double local_20fc;" (primitive_type "double") (identifier "local_20fc") (; ";")) (declaration "undefined4 local_20e8 [20];" (type_identifier "undefined4") (array_declarator "local_20e8 [20]" (identifier "local_20e8") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "undefined4 local_2098 [4];" (type_identifier "undefined4") (array_declarator "local_2098 [4]" (identifier "local_2098") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "double local_2088;" (primitive_type "double") (identifier "local_2088") (; ";")) (declaration "double local_2080;" (primitive_type "double") (identifier "local_2080") (; ";")) (declaration "undefined4 local_2078;" (type_identifier "undefined4") (identifier "local_2078") (; ";")) (declaration "undefined4 uStack_2074;" (type_identifier "undefined4") (identifier "uStack_2074") (; ";")) (declaration "double local_2060;" (primitive_type "double") (identifier "local_2060") (; ";")) (declaration "undefined4 local_2058;" (type_identifier "undefined4") (identifier "local_2058") (; ";")) (declaration "undefined4 local_2054;" (type_identifier "undefined4") (identifier "local_2054") (; ";")) (declaration "undefined4 local_2030;" (type_identifier "undefined4") (identifier "local_2030") (; ";")) (declaration "undefined4 local_202c;" (type_identifier "undefined4") (identifier "local_202c") (; ";")) (declaration "undefined1 local_2020 [4096];" (type_identifier "undefined1") (array_declarator "local_2020 [4096]" (identifier "local_2020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "undefined1 local_1020 [4096];" (type_identifier "undefined1") (array_declarator "local_1020 [4096]" (identifier "local_1020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x39f49;" (assignment_expression "uStack_14 = 0x39f49" (identifier "uStack_14") (= "=") (number_literal "0x39f49")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/annotate.c"" (" """) (string_content "MagickCore/annotate.c") (" """)) (, ",") (number_literal "0x105") (, ",") (string_literal ""AnnotateImage"" (" """) (string_content "AnnotateImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" (* "*") (cast_expression "(int *)(param_1 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3344)" (( "(") (binary_expression "param_1 + 0x3344" (identifier "param_1") (+ "+") (number_literal "0x3344")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,\n                  "AnnotateImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/annotate.c"" (" """) (string_content "MagickCore/annotate.c") (" """)) (, ",") (number_literal "0x106") (, ",") (string_literal ""AnnotateImage"" (" """) (string_content "AnnotateImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" (* "*") (cast_expression "(int *)(param_1 + 0x3328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3328)" (( "(") (binary_expression "param_1 + 0x3328" (identifier "param_1") (+ "+") (number_literal "0x3328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/annotate.c","AnnotateImage",0x108,&DAT_002b6e4e,\n                   param_1 + 0x318)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/annotate.c"" (" """) (string_content "MagickCore/annotate.c") (" """)) (, ",") (string_literal ""AnnotateImage"" (" """) (string_content "AnnotateImage") (" """)) (, ",") (number_literal "0x108") (, ",") (pointer_expression "&DAT_002b6e4e" (& "&") (identifier "DAT_002b6e4e")) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");\n  }" ({ "{") (expression_statement "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");" (call_expression "__assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" (identifier "__assert_fail") (argument_list "("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage")" (( "(") (string_literal ""draw_info != (DrawInfo *) NULL"" (" """) (string_content "draw_info != (DrawInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/annotate.c"" (" """) (string_content "MagickCore/annotate.c") (" """)) (, ",") (number_literal "0x109") (, ",") (string_literal ""AnnotateImage"" (" """) (string_content "AnnotateImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x358) != -0x54535255) {\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x358) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0x358) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x358)" (* "*") (cast_expression "(int *)(param_2 + 0x358)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x358)" (( "(") (binary_expression "param_2 + 0x358" (identifier "param_2") (+ "+") (number_literal "0x358")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");\n  }" ({ "{") (expression_statement "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage");" (call_expression "__assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" (identifier "__assert_fail") (argument_list "("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,\n                  "AnnotateImage")" (( "(") (string_literal ""draw_info->signature == MagickCoreSignature"" (" """) (string_content "draw_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/annotate.c"" (" """) (string_content "MagickCore/annotate.c") (" """)) (, ",") (number_literal "0x10a") (, ",") (string_literal ""AnnotateImage"" (" """) (string_content "AnnotateImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;" (if "if") (parenthesized_expression "((*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0'))" (( "(") (binary_expression "(*(char **)(param_2 + 0x238) == (char *)0x0) ||\n     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')" (parenthesized_expression "(*(char **)(param_2 + 0x238) == (char *)0x0)" (( "(") (binary_expression "*(char **)(param_2 + 0x238) == (char *)0x0" (pointer_expression "*(char **)(param_2 + 0x238)" (* "*") (cast_expression "(char **)(param_2 + 0x238)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x238)" (( "(") (binary_expression "param_2 + 0x238" (identifier "param_2") (+ "+") (number_literal "0x238")) () ")")))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')" (( "(") (comma_expression "iVar15 = 1, **(char **)(param_2 + 0x238) == '\0'" (assignment_expression "iVar15 = 1" (identifier "iVar15") (= "=") (number_literal "1")) (, ",") (binary_expression "**(char **)(param_2 + 0x238) == '\0'" (pointer_expression "**(char **)(param_2 + 0x238)" (* "*") (pointer_expression "*(char **)(param_2 + 0x238)" (* "*") (cast_expression "(char **)(param_2 + 0x238)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x238)" (( "(") (binary_expression "param_2 + 0x238" (identifier "param_2") (+ "+") (number_literal "0x238")) () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00039fee;" (goto "goto") (statement_identifier "LAB_00039fee") (; ";"))) (expression_statement "iVar8 = CloneDrawInfo(0,param_2);" (assignment_expression "iVar8 = CloneDrawInfo(0,param_2)" (identifier "iVar8") (= "=") (call_expression "CloneDrawInfo(0,param_2)" (identifier "CloneDrawInfo") (argument_list "(0,param_2)" (( "(") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar2 = *(char **)(iVar8 + 0x238);" (assignment_expression "pcVar2 = *(char **)(iVar8 + 0x238)" (identifier "pcVar2") (= "=") (pointer_expression "*(char **)(iVar8 + 0x238)" (* "*") (cast_expression "(char **)(iVar8 + 0x238)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x238)" (( "(") (binary_expression "iVar8 + 0x238" (identifier "iVar8") (+ "+") (number_literal "0x238")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x238) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x238) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x238)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x238)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x238)" (( "(") (binary_expression "iVar8 + 0x238" (identifier "iVar8") (+ "+") (number_literal "0x238")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = CloneDrawInfo(0,param_2);" (assignment_expression "iVar9 = CloneDrawInfo(0,param_2)" (identifier "iVar9") (= "=") (call_expression "CloneDrawInfo(0,param_2)" (identifier "CloneDrawInfo") (argument_list "(0,param_2)" (( "(") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "cVar7 = *pcVar2;" (assignment_expression "cVar7 = *pcVar2" (identifier "cVar7") (= "=") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2"))) (; ";")) (if_statement "if (cVar7 == '\0') {\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }\n  else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);\n    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;\n    local_215c = 1;\nLAB_0003a0a2:\n    iVar15 = 0;\n    pcVar13 = pcVar2;\n    do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);\n    puVar10 = local_2174 + local_215c;\n  }" ({ "{") (expression_statement "local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);" (assignment_expression "local_2174 = (undefined4 *)AcquireQuantumMemory(2,4)" (identifier "local_2174") (= "=") (cast_expression "(undefined4 *)AcquireQuantumMemory(2,4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(2,4)" (identifier "AcquireQuantumMemory") (argument_list "(2,4)" (( "(") (number_literal "2") (, ",") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;" (if "if") (parenthesized_expression "(local_2174 == (undefined4 *)0x0)" (( "(") (binary_expression "local_2174 == (undefined4 *)0x0" (identifier "local_2174") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003ae11;" (goto "goto") (statement_identifier "LAB_0003ae11") (; ";"))) (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" (identifier "local_215c") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0003a0a2:\n    iVar15 = 0;" (statement_identifier "LAB_0003a0a2") (: ":") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pcVar13 = pcVar2;" (assignment_expression "pcVar13 = pcVar2" (identifier "pcVar13") (= "=") (identifier "pcVar2")) (; ";")) (do_statement "do {\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    } while (iVar15 < (int)local_215c);" (do "do") (compound_statement "{\n      local_2174[iVar15] = pcVar13;\n      cVar7 = *pcVar13;\n      pcVar17 = pcVar13 + 1;\n      pcVar14 = pcVar17;\n      if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }\nLAB_0003a0fa:\n      iVar15 = iVar15 + 1;\n      *pcVar13 = '\0';\n      pcVar13 = pcVar14;\n    }" ({ "{") (expression_statement "local_2174[iVar15] = pcVar13;" (assignment_expression "local_2174[iVar15] = pcVar13" (subscript_expression "local_2174[iVar15]" (identifier "local_2174") ([ "[") (identifier "iVar15") (] "]")) (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" (identifier "cVar7") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "pcVar17 = pcVar13 + 1;" (assignment_expression "pcVar17 = pcVar13 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar14 = pcVar17;" (assignment_expression "pcVar14 = pcVar17" (identifier "pcVar14") (= "=") (identifier "pcVar17")) (; ";")) (if_statement "if (cVar7 != '\0') {\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }\n        pcVar14 = pcVar17;\n        if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }\n      }" ({ "{") (if_statement "if ((cVar7 != '\n') && (cVar7 != '\r')) {\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }" (if "if") (parenthesized_expression "((cVar7 != '\n') && (cVar7 != '\r'))" (( "(") (binary_expression "(cVar7 != '\n') && (cVar7 != '\r')" (parenthesized_expression "(cVar7 != '\n')" (( "(") (binary_expression "cVar7 != '\n'" (identifier "cVar7") (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar7 != '\r')" (( "(") (binary_expression "cVar7 != '\r'" (identifier "cVar7") (!= "!=") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));\n        }" ({ "{") (do_statement "do {\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          } while ((cVar7 != '\r') && (cVar7 != '\n'));" (do "do") (compound_statement "{\n            pcVar13 = pcVar17;\n            cVar7 = *pcVar13;\n            pcVar14 = pcVar13 + 1;\n            if (cVar7 == '\0') goto LAB_0003a0fa;\n            pcVar17 = pcVar14;\n          }" ({ "{") (expression_statement "pcVar13 = pcVar17;" (assignment_expression "pcVar13 = pcVar17" (identifier "pcVar13") (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" (identifier "cVar7") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar7 == '\0') goto LAB_0003a0fa;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0003a0fa;" (goto "goto") (statement_identifier "LAB_0003a0fa") (; ";"))) (expression_statement "pcVar17 = pcVar14;" (assignment_expression "pcVar17 = pcVar14" (identifier "pcVar17") (= "=") (identifier "pcVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((cVar7 != '\r') && (cVar7 != '\n'))" (( "(") (binary_expression "(cVar7 != '\r') && (cVar7 != '\n')" (parenthesized_expression "(cVar7 != '\r')" (( "(") (binary_expression "cVar7 != '\r'" (identifier "cVar7") (!= "!=") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar7 != '\n')" (( "(") (binary_expression "cVar7 != '\n'" (identifier "cVar7") (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar14 = pcVar17;" (assignment_expression "pcVar14 = pcVar17" (identifier "pcVar14") (= "=") (identifier "pcVar17")) (; ";")) (if_statement "if (cVar7 == '\r') {\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }" (if "if") (parenthesized_expression "(cVar7 == '\r')" (( "(") (binary_expression "cVar7 == '\r'" (identifier "cVar7") (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (compound_statement "{\n          *pcVar13 = '\0';\n          pcVar14 = pcVar17 + 1;\n          pcVar13 = pcVar17;\n        }" ({ "{") (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar14 = pcVar17 + 1;" (assignment_expression "pcVar14 = pcVar17 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar13 = pcVar17;" (assignment_expression "pcVar13 = pcVar17" (identifier "pcVar13") (= "=") (identifier "pcVar17")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0003a0fa:\n      iVar15 = iVar15 + 1;" (statement_identifier "LAB_0003a0fa") (: ":") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar13 = pcVar14;" (assignment_expression "pcVar13 = pcVar14" (identifier "pcVar13") (= "=") (identifier "pcVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar15 < (int)local_215c)" (( "(") (binary_expression "iVar15 < (int)local_215c" (identifier "iVar15") (< "<") (cast_expression "(int)local_215c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_215c"))) () ")")) (; ";")) (expression_statement "puVar10 = local_2174 + local_215c;" (assignment_expression "puVar10 = local_2174 + local_215c" (identifier "puVar10") (= "=") (binary_expression "local_2174 + local_215c" (identifier "local_2174") (+ "+") (identifier "local_215c"))) (; ";")) (} "}")) (else_clause "else {\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" (else "else") (compound_statement "{\n    local_215c = 1;\n    pcVar13 = pcVar2;\n    do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');\n    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);\n    if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }\n    local_2174 = puVar10;\n    if (0 < (int)local_215c) goto LAB_0003a0a2;\n  }" ({ "{") (expression_statement "local_215c = 1;" (assignment_expression "local_215c = 1" (identifier "local_215c") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar13 = pcVar2;" (assignment_expression "pcVar13 = pcVar2" (identifier "pcVar13") (= "=") (identifier "pcVar2")) (; ";")) (do_statement "do {\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    } while (cVar7 != '\0');" (do "do") (compound_statement "{\n      uVar11 = local_215c + 1;\n      if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }\n      pcVar13 = pcVar13 + 1;\n      cVar7 = *pcVar13;\n    }" ({ "{") (expression_statement "uVar11 = local_215c + 1;" (assignment_expression "uVar11 = local_215c + 1" (identifier "uVar11") (= "=") (binary_expression "local_215c + 1" (identifier "local_215c") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar7 == '\n') {\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" (if "if") (parenthesized_expression "(cVar7 == '\n')" (( "(") (binary_expression "cVar7 == '\n'" (identifier "cVar7") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n        uVar11 = local_215c + 2;\n        local_215c = local_215c + 1;\n      }" ({ "{") (expression_statement "uVar11 = local_215c + 2;" (assignment_expression "uVar11 = local_215c + 2" (identifier "uVar11") (= "=") (binary_expression "local_215c + 2" (identifier "local_215c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_215c = local_215c + 1;" (assignment_expression "local_215c = local_215c + 1" (identifier "local_215c") (= "=") (binary_expression "local_215c + 1" (identifier "local_215c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar7 = *pcVar13;" (assignment_expression "cVar7 = *pcVar13" (identifier "cVar7") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);" (assignment_expression "puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)AcquireQuantumMemory(uVar11,4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(uVar11,4)" (identifier "AcquireQuantumMemory") (argument_list "(uVar11,4)" (( "(") (identifier "uVar11") (, ",") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (puVar10 == (undefined4 *)0x0) {\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }" (if "if") (parenthesized_expression "(puVar10 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar10 == (undefined4 *)0x0" (identifier "puVar10") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0003ae11:\n      DestroyDrawInfo(iVar9);\n      iVar15 = 0;\n      DestroyDrawInfo(iVar8);\n      DestroyString(pcVar2);\n      goto LAB_00039fee;\n    }" ({ "{") (labeled_statement "LAB_0003ae11:\n      DestroyDrawInfo(iVar9);" (statement_identifier "LAB_0003ae11") (: ":") (expression_statement "DestroyDrawInfo(iVar9);" (call_expression "DestroyDrawInfo(iVar9)" (identifier "DestroyDrawInfo") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";"))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "DestroyDrawInfo(iVar8);" (call_expression "DestroyDrawInfo(iVar8)" (identifier "DestroyDrawInfo") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "DestroyString(pcVar2);" (call_expression "DestroyString(pcVar2)" (identifier "DestroyString") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (goto_statement "goto LAB_00039fee;" (goto "goto") (statement_identifier "LAB_00039fee") (; ";")) (} "}"))) (expression_statement "local_2174 = puVar10;" (assignment_expression "local_2174 = puVar10" (identifier "local_2174") (= "=") (identifier "puVar10")) (; ";")) (if_statement "if (0 < (int)local_215c) goto LAB_0003a0a2;" (if "if") (parenthesized_expression "(0 < (int)local_215c)" (( "(") (binary_expression "0 < (int)local_215c" (number_literal "0") (< "<") (cast_expression "(int)local_215c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_215c"))) () ")")) (goto_statement "goto LAB_0003a0a2;" (goto "goto") (statement_identifier "LAB_0003a0a2") (; ";"))) (} "}")))) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "SetGeometry(param_1,&local_2124);" (call_expression "SetGeometry(param_1,&local_2124)" (identifier "SetGeometry") (argument_list "(param_1,&local_2124)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_2124" (& "&") (identifier "local_2124")) () ")"))) (; ";")) (expression_statement "SetGeometryInfo(local_2114);" (call_expression "SetGeometryInfo(local_2114)" (identifier "SetGeometryInfo") (argument_list "(local_2114)" (( "(") (identifier "local_2114") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar9 + 4) != 0) {\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 4) != 0" (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);\n    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);\n  }" ({ "{") (expression_statement "ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);" (call_expression "ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3)" (identifier "ParsePageGeometry") (argument_list "(param_1,*(int *)(iVar9 + 4),&local_2124,param_3)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "&local_2124" (& "&") (identifier "local_2124")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);" (call_expression "ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114)" (identifier "ParseGeometry") (argument_list "(*(undefined4 *)(iVar9 + 4),local_2114)" (( "(") (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "local_2114") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = SetImageStorageClass(param_1,1,param_3);" (assignment_expression "iVar15 = SetImageStorageClass(param_1,1,param_3)" (identifier "iVar15") (= "=") (call_expression "SetImageStorageClass(param_1,1,param_3)" (identifier "SetImageStorageClass") (argument_list "(param_1,1,param_3)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }\n    puVar10 = local_2098;\n    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }\n    pcVar13 = (char *)*local_2174;\n    if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {\n      SetImageColorspace(param_1,0x17,param_3);\n    }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3))" (( "(") (binary_expression "(*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)" (parenthesized_expression "(*(int *)(param_1 + 4) == 0x21)" (( "(") (binary_expression "*(int *)(param_1 + 4) == 0x21" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x21")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 4) == 3)" (( "(") (binary_expression "*(int *)(param_1 + 4) == 3" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n      SetImageColorspace(param_1,0x17,param_3);\n    }" ({ "{") (expression_statement "SetImageColorspace(param_1,0x17,param_3);" (call_expression "SetImageColorspace(param_1,0x17,param_3)" (identifier "SetImageColorspace") (argument_list "(param_1,0x17,param_3)" (( "(") (identifier "param_1") (, ",") (number_literal "0x17") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar10 = local_2098;" (assignment_expression "puVar10 = local_2098" (identifier "puVar10") (= "=") (identifier "local_2098")) (; ";")) (for_statement "for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }" (for "for") (( "(") (assignment_expression "iVar15 = 0x1e" (identifier "iVar15") (= "=") (number_literal "0x1e")) (; ";") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      *puVar10 = 0;\n      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n    }" ({ "{") (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" (identifier "puVar10") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = (char *)*local_2174;" (assignment_expression "pcVar13 = (char *)*local_2174" (identifier "pcVar13") (= "=") (cast_expression "(char *)*local_2174" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_2174" (* "*") (identifier "local_2174")))) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\n      iVar15 = 1;\n    }\n    else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar15 = 1;\n    }" ({ "{") (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" (identifier "iVar15") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" (else "else") (compound_statement "{\n      local_2188 = 0;\n      iVar15 = 1;\n      do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);\n    }" ({ "{") (expression_statement "local_2188 = 0;" (assignment_expression "local_2188 = 0" (identifier "local_2188") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" (identifier "iVar15") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      } while (pcVar13 != (char *)0x0);" (do "do") (compound_statement "{\n        if (*pcVar13 == '\0') goto LAB_0003a60a;\n        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);\n        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);\n        CloneString(iVar8 + 0x238,pcVar13);\n        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }\n        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));\n        iVar15 = local_2154;\n        if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }\n        dVar1 = (double)local_2188;\n        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;\n        local_217c = (ulonglong)(uint)(local_2154 + iVar15);\n        dVar6 = (double)local_217c;\n        switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }\n        iVar15 = *(int *)(iVar8 + 0x268);\njoined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }\n        if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }\n        local_216c = local_1020;\n        *(double *)(iVar9 + 0x38) = local_2134;\n        *(double *)(iVar9 + 0x40) = local_212c;\n        dVar1 = *(double *)(iVar9 + 0xd8);\n        puVar10 = (undefined4 *)(iVar9 + 0x48);\n        puVar16 = local_20e8;\n        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }\n        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);\n        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);\n        if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        iVar15 = FUN_00039740(local_2098,param_3);\n        if (iVar15 == 0) break;\n        if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\nLAB_0003a60a:\n        local_2188 = local_2188 + 1;\n        pcVar13 = (char *)local_2174[local_2188];\n      }" ({ "{") (if_statement "if (*pcVar13 == '\0') goto LAB_0003a60a;" (if "if") (parenthesized_expression "(*pcVar13 == '\0')" (( "(") (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0003a60a;" (goto "goto") (statement_identifier "LAB_0003a60a") (; ";"))) (expression_statement "*(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);" (assignment_expression "*(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208)" (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "local_2104 - (double)*(int *)(param_1 + 0x208)" (identifier "local_2104") (- "-") (cast_expression "(double)*(int *)(param_1 + 0x208)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_1 + 0x208)" (* "*") (cast_expression "(int *)(param_1 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x208)" (( "(") (binary_expression "param_1 + 0x208" (identifier "param_1") (+ "+") (number_literal "0x208")) () ")"))))))) (; ";")) (expression_statement "*(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);" (assignment_expression "*(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c)" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "local_20fc - (double)*(int *)(param_1 + 0x20c)" (identifier "local_20fc") (- "-") (cast_expression "(double)*(int *)(param_1 + 0x20c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_1 + 0x20c)" (* "*") (cast_expression "(int *)(param_1 + 0x20c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20c)" (( "(") (binary_expression "param_1 + 0x20c" (identifier "param_1") (+ "+") (number_literal "0x20c")) () ")"))))))) (; ";")) (expression_statement "CloneString(iVar8 + 0x238,pcVar13);" (call_expression "CloneString(iVar8 + 0x238,pcVar13)" (identifier "CloneString") (argument_list "(iVar8 + 0x238,pcVar13)" (( "(") (binary_expression "iVar8 + 0x238" (identifier "iVar8") (+ "+") (number_literal "0x238")) (, ",") (identifier "pcVar13") () ")"))) (; ";")) (if_statement "if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }" (if "if") (parenthesized_expression "(((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1))" (( "(") (binary_expression "((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)" (parenthesized_expression "((double)CONCAT44(uStack_2074,local_2078) == 0.0)" (( "(") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) == 0.0" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (== "==") (number_literal "0.0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar8 + 0x26c) != 1)" (( "(") (binary_expression "*(int *)(iVar8 + 0x26c) != 1" (pointer_expression "*(int *)(iVar8 + 0x26c)" (* "*") (cast_expression "(int *)(iVar8 + 0x26c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x26c)" (( "(") (binary_expression "iVar8 + 0x26c" (identifier "iVar8") (+ "+") (number_literal "0x26c")) () ")")))) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n          GetTypeMetrics(param_1,iVar8,local_2098,param_3);\n        }" ({ "{") (expression_statement "GetTypeMetrics(param_1,iVar8,local_2098,param_3);" (call_expression "GetTypeMetrics(param_1,iVar8,local_2098,param_3)" (identifier "GetTypeMetrics") (argument_list "(param_1,iVar8,local_2098,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar8") (, ",") (identifier "local_2098") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" (identifier "local_2154") (= "=") (cast_expression "(int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" (identifier "ROUND") (argument_list "(ROUND((local_2088 - local_2080) + (double)DAT_0029f124))" (( "(") (call_expression "ROUND((local_2088 - local_2080) + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "((local_2088 - local_2080) + (double)DAT_0029f124)" (( "(") (binary_expression "(local_2088 - local_2080) + (double)DAT_0029f124" (parenthesized_expression "(local_2088 - local_2080)" (( "(") (binary_expression "local_2088 - local_2080" (identifier "local_2088") (- "-") (identifier "local_2080")) () ")")) (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))) () ")")))))) (; ";")) (expression_statement "iVar15 = local_2154;" (assignment_expression "iVar15 = local_2154" (identifier "iVar15") (= "=") (identifier "local_2154")) (; ";")) (if_statement "if (local_2154 == 0) {\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }" (if "if") (parenthesized_expression "(local_2154 == 0)" (( "(") (binary_expression "local_2154 == 0" (identifier "local_2154") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));\n          iVar15 = local_2154;\n        }" ({ "{") (expression_statement "local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));" (assignment_expression "local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c))" (identifier "local_2154") (= "=") (cast_expression "(int)(longlong)ROUND(*(double *)(param_2 + 0x25c))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(longlong)ROUND(*(double *)(param_2 + 0x25c))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(param_2 + 0x25c))" (identifier "ROUND") (argument_list "(*(double *)(param_2 + 0x25c))" (( "(") (pointer_expression "*(double *)(param_2 + 0x25c)" (* "*") (cast_expression "(double *)(param_2 + 0x25c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x25c)" (( "(") (binary_expression "param_2 + 0x25c" (identifier "param_2") (+ "+") (number_literal "0x25c")) () ")")))) () ")")))))) (; ";")) (expression_statement "iVar15 = local_2154;" (assignment_expression "iVar15 = local_2154" (identifier "iVar15") (= "=") (identifier "local_2154")) (; ";")) (} "}"))) (expression_statement "dVar1 = (double)local_2188;" (assignment_expression "dVar1 = (double)local_2188" (identifier "dVar1") (= "=") (cast_expression "(double)local_2188" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2188"))) (; ";")) (expression_statement "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))\n        ;" (assignment_expression "local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" (identifier "local_2154") (= "=") (cast_expression "(int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" (identifier "ROUND") (argument_list "(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))" (( "(") (call_expression "ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348))" (identifier "ROUND") (argument_list "(DAT_0029f124 + (float)*(double *)(param_2 + 0x348))" (( "(") (binary_expression "DAT_0029f124 + (float)*(double *)(param_2 + 0x348)" (identifier "DAT_0029f124") (+ "+") (cast_expression "(float)*(double *)(param_2 + 0x348)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 0x348)" (* "*") (cast_expression "(double *)(param_2 + 0x348)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x348)" (( "(") (binary_expression "param_2 + 0x348" (identifier "param_2") (+ "+") (number_literal "0x348")) () ")")))))) () ")"))) () ")")))))) (; ";")) (expression_statement "local_217c = (ulonglong)(uint)(local_2154 + iVar15);" (assignment_expression "local_217c = (ulonglong)(uint)(local_2154 + iVar15)" (identifier "local_217c") (= "=") (call_expression "(ulonglong)(uint)(local_2154 + iVar15)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(local_2154 + iVar15)" (( "(") (binary_expression "local_2154 + iVar15" (identifier "local_2154") (+ "+") (identifier "iVar15")) () ")")))) (; ";")) (expression_statement "dVar6 = (double)local_217c;" (assignment_expression "dVar6 = (double)local_217c" (identifier "dVar6") (= "=") (cast_expression "(double)local_217c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_217c"))) (; ";")) (switch_statement "switch(*(undefined4 *)(iVar8 + 0x26c)) {\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }" (switch "switch") (parenthesized_expression "(*(undefined4 *)(iVar8 + 0x26c))" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + 0x26c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x26c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x26c)" (( "(") (binary_expression "iVar8 + 0x26c" (identifier "iVar8") (+ "+") (number_literal "0x26c")) () ")")))) () ")")) (compound_statement "{\n        case 0:\n        default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;\n        case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;\n        case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;\n        case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;\n        case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;\n        case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;\n        case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;\n        case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;\n        case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;\n        case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;\n        }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "default:\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);\n          break;" (default "default") (: ":") (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (identifier "local_2134") (= "=") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (expression_statement "local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);" (assignment_expression "local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40)" (identifier "local_212c") (= "=") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;\n          break;" (case "case") (number_literal "1") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 == 0)" (( "(") (binary_expression "local_2124 == 0" (identifier "local_2124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (identifier "local_2134") (= "=") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)\n                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (+ "+") (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" (( "(") (binary_expression "local_2080 + local_2088" (identifier "local_2080") (+ "+") (identifier "local_2088")) () ")")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")"))))))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 == 0)" (( "(") (binary_expression "uStack_2120 == 0" (identifier "uStack_2120") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n          ;" (assignment_expression "local_212c = local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (identifier "local_212c") (= "=") (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" (identifier "local_2088") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")"))))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;\n          break;" (case "case") (number_literal "2") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 == 0)" (( "(") (binary_expression "local_2124 == 0" (identifier "local_2124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)\n          ;" (assignment_expression "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (identifier "local_2134") (= "=") (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124)" (( "(") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124)" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) +\n                        (double)local_2124 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (+ "+") (binary_expression "(double)local_2124 * (double)DAT_0029f124" (cast_expression "(double)local_2124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2124")) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) () ")")) (+ "+") (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" (( "(") (binary_expression "local_2080 + local_2088" (identifier "local_2080") (+ "+") (identifier "local_2088")) () ")")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")"))))))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 == 0)" (( "(") (binary_expression "uStack_2120 == 0" (identifier "uStack_2120") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124;" (assignment_expression "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (identifier "local_212c") (= "=") (binary_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (parenthesized_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       )" (( "(") (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" (identifier "local_2088") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                           (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n          break;" (case "case") (number_literal "3") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 != 0)" (( "(") (binary_expression "local_2124 != 0" (identifier "local_2124") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;" (assignment_expression "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0" (identifier "local_2134") (= "=") (binary_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0" (parenthesized_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28))" (( "(") (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +\n                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" (( "(") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (cast_expression "(double)local_2124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2124"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))))) () ")")) (+ "+") (binary_expression "(local_2080 + local_2088) * *(double *)(iVar9 + 0x28)" (parenthesized_expression "(local_2080 + local_2088)" (( "(") (binary_expression "local_2080 + local_2088" (identifier "local_2080") (+ "+") (identifier "local_2088")) () ")")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))))) () ")")) (- "-") (number_literal "1.0"))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 == 0)" (( "(") (binary_expression "uStack_2120 == 0" (identifier "uStack_2120") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);" (assignment_expression "local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (identifier "local_212c") (= "=") (binary_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)\n                       )" (( "(") (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "local_2088 * *(double *)(iVar9 + 0x30)" (identifier "local_2088") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;\n          break;" (case "case") (number_literal "4") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 == 0)" (( "(") (binary_expression "local_2124 == 0" (identifier "local_2124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (identifier "dVar4") (= "=") (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" (( "(") (binary_expression "local_2088 + local_2080" (identifier "local_2088") (+ "+") (identifier "local_2080")) () ")")) (- "-") (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")")) (* "*") (identifier "dVar6")))) (; ";")) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6\n          ;" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (identifier "local_2134") (= "=") (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar4")) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 == 0)" (( "(") (binary_expression "uStack_2120 == 0" (identifier "uStack_2120") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124;" (assignment_expression "local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124" (identifier "local_212c") (= "=") (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40) +\n                       (double)uStack_2120 * (double)DAT_0029f124" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +\n                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30)" (binary_expression "(double)DAT_0029f124 * dVar4" (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")) (* "*") (identifier "dVar4")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (+ "+") (binary_expression "(double)uStack_2120 * (double)DAT_0029f124" (cast_expression "(double)uStack_2120" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uStack_2120")) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;\n          break;" (case "case") (number_literal "5") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 == 0)" (( "(") (binary_expression "local_2124 == 0" (identifier "local_2124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (identifier "dVar5") (= "=") (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" (( "(") (binary_expression "local_2088 + local_2080" (identifier "local_2088") (+ "+") (identifier "local_2080")) () ")")) (- "-") (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")")) (* "*") (identifier "dVar6")))) (; ";")) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" (identifier "dVar4") (= "=") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (; ";")) (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n          ;" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" (identifier "local_2134") (= "=") (binary_expression "*(double *)(iVar9 + 0x28) * dVar5 * dVar4 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar5 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar5" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar5")) (* "*") (identifier "dVar4")) (+ "+") (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" (( "(") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4)" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (+ "+") (binary_expression "(double)local_2124 * dVar4" (cast_expression "(double)local_2124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2124")) (* "*") (identifier "dVar4"))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")"))))) (* "*") (identifier "dVar4"))) () ")")))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 == 0)" (( "(") (binary_expression "uStack_2120 == 0" (identifier "uStack_2120") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" (identifier "dVar4") (= "=") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (; ";")) (expression_statement "local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)\n          ;" (assignment_expression "local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" (identifier "local_212c") (= "=") (binary_expression "dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" (binary_expression "dVar5 * *(double *)(iVar9 + 0x30) * dVar4" (binary_expression "dVar5 * *(double *)(iVar9 + 0x30)" (identifier "dVar5") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (identifier "dVar4")) (+ "+") (parenthesized_expression "((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)" (( "(") (binary_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4)" (( "(") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (+ "+") (binary_expression "(double)uStack_2120 * dVar4" (cast_expression "(double)uStack_2120" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uStack_2120")) (* "*") (identifier "dVar4"))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))) (* "*") (identifier "dVar4"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;\n          dVar3 = 1.0;\n          if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }\n          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));\n          break;" (case "case") (number_literal "6") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 != 0)" (( "(") (binary_expression "local_2124 != 0" (identifier "local_2124") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;" (assignment_expression "dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (identifier "dVar4") (= "=") (binary_expression "(local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(local_2088 + local_2080)" (( "(") (binary_expression "local_2088 + local_2080" (identifier "local_2088") (+ "+") (identifier "local_2080")) () ")")) (- "-") (binary_expression "((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")")) (* "*") (identifier "dVar6")))) (; ";")) (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0" (identifier "local_2134") (= "=") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)))" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar4" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar4")) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (+ "+") (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" (( "(") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (cast_expression "(double)local_2124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2124"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))))) () ")"))) () ")")) (- "-") (number_literal "1.0"))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 == 0)" (( "(") (binary_expression "uStack_2120 == 0" (identifier "uStack_2120") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));" (assignment_expression "local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" (identifier "local_212c") (= "=") (binary_expression "dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +\n                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" (binary_expression "dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124" (binary_expression "dVar4 * *(double *)(iVar9 + 0x30)" (identifier "dVar4") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (+ "+") (parenthesized_expression "((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" (( "(") (binary_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124)" (( "(") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40) +\n                        (double)uStack_2120 * (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (+ "+") (binary_expression "(double)uStack_2120 * (double)DAT_0029f124" (cast_expression "(double)uStack_2120" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uStack_2120")) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")")))))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\n          goto code_r0x0003a70e;" (case "case") (number_literal "7") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 == 0)" (( "(") (binary_expression "local_2124 == 0" (identifier "local_2124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (identifier "local_2134") (= "=") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38))" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                       dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")"))) (* "*") (identifier "dVar6")))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 != 0)" (( "(") (binary_expression "uStack_2120 != 0" (identifier "uStack_2120") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);" (assignment_expression "dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (= "=") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +\n                  (double)uStack_2120" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (cast_expression "(double)uStack_2120" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uStack_2120"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")"))))))) (; ";")) (expression_statement "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);" (assignment_expression "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (identifier "dVar4") (= "=") (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (goto_statement "goto code_r0x0003a70e;" (goto "goto") (statement_identifier "code_r0x0003a70e") (; ";"))) (case_statement "case 8:\n          dVar3 = 1.0;\n          if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = (double)DAT_0029f124;\n          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;\n          dVar3 = 1.0;\n          if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;\n          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);\ncode_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);\n          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;\n          goto joined_r0x0003a72a;" (case "case") (number_literal "8") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 == 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 == 0)" (( "(") (binary_expression "local_2124 == 0" (identifier "local_2124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar4 = (double)DAT_0029f124;" (assignment_expression "dVar4 = (double)DAT_0029f124" (identifier "dVar4") (= "=") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) (; ";")) (expression_statement "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;" (assignment_expression "local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (identifier "local_2134") (= "=") (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)\n                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)" (( "(") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4)" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                        dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (+ "+") (binary_expression "(double)local_2124 * dVar4" (cast_expression "(double)local_2124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2124")) (* "*") (identifier "dVar4"))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")"))))) (* "*") (identifier "dVar4"))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")"))) (* "*") (identifier "dVar6")) (* "*") (identifier "dVar4")))) (; ";")) (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (uStack_2120 != 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 != 0)" (( "(") (binary_expression "uStack_2120 != 0" (identifier "uStack_2120") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124;" (assignment_expression "dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (parenthesized_expression "((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6)" (( "(") (binary_expression "(double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +\n                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40)" (cast_expression "(double)uStack_2120" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uStack_2120")) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x40)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                  (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))))) (; ";")) (expression_statement "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);" (assignment_expression "dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (identifier "dVar4") (= "=") (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (labeled_statement "code_r0x0003a70e:\n          iVar15 = *(int *)(iVar8 + 0x268);" (statement_identifier "code_r0x0003a70e") (: ":") (expression_statement "iVar15 = *(int *)(iVar8 + 0x268);" (assignment_expression "iVar15 = *(int *)(iVar8 + 0x268)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar8 + 0x268)" (* "*") (cast_expression "(int *)(iVar8 + 0x268)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x268)" (( "(") (binary_expression "iVar8 + 0x268" (identifier "iVar8") (+ "+") (number_literal "0x268")) () ")"))))) (; ";"))) (expression_statement "local_212c = (dVar3 - dVar4 * dVar6) + local_2080;" (assignment_expression "local_212c = (dVar3 - dVar4 * dVar6) + local_2080" (identifier "local_212c") (= "=") (binary_expression "(dVar3 - dVar4 * dVar6) + local_2080" (parenthesized_expression "(dVar3 - dVar4 * dVar6)" (( "(") (binary_expression "dVar3 - dVar4 * dVar6" (identifier "dVar3") (- "-") (binary_expression "dVar4 * dVar6" (identifier "dVar4") (* "*") (identifier "dVar6"))) () ")")) (+ "+") (identifier "local_2080"))) (; ";")) (goto_statement "goto joined_r0x0003a72a;" (goto "goto") (statement_identifier "joined_r0x0003a72a") (; ";"))) (case_statement "case 9:\n          dVar3 = 1.0;\n          if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }\n          dVar4 = 1.0;\n          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;\n          if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }\n          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;" (case "case") (number_literal "9") (: ":") (expression_statement "dVar3 = 1.0;" (assignment_expression "dVar3 = 1.0" (identifier "dVar3") (= "=") (number_literal "1.0")) (; ";")) (if_statement "if (local_2124 != 0) {\n            dVar3 = -1.0;\n          }" (if "if") (parenthesized_expression "(local_2124 != 0)" (( "(") (binary_expression "local_2124 != 0" (identifier "local_2124") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = -1.0;\n          }" ({ "{") (expression_statement "dVar3 = -1.0;" (assignment_expression "dVar3 = -1.0" (identifier "dVar3") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "dVar4 = 1.0;" (assignment_expression "dVar4 = 1.0" (identifier "dVar4") (= "=") (number_literal "1.0")) (; ";")) (expression_statement "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;" (assignment_expression "local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0" (identifier "local_2134") (= "=") (binary_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0" (parenthesized_expression "(((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6)" (( "(") (binary_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -\n                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (parenthesized_expression "((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))" (( "(") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -\n                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38))" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +\n                         (double)local_2124" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (cast_expression "(double)local_2124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2124"))) (+ "+") (binary_expression "dVar3 * *(double *)(iVar9 + 0x38)" (identifier "dVar3") (* "*") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0)" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")"))) (* "*") (identifier "dVar6"))) () ")")) (- "-") (number_literal "1.0"))) (; ";")) (if_statement "if (uStack_2120 != 0) {\n            dVar4 = -1.0;\n          }" (if "if") (parenthesized_expression "(uStack_2120 != 0)" (( "(") (binary_expression "uStack_2120 != 0" (identifier "uStack_2120") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar4 = -1.0;\n          }" ({ "{") (expression_statement "dVar4 = -1.0;" (assignment_expression "dVar4 = -1.0" (identifier "dVar4") (= "=") (number_literal "-1.0")) (; ";")) (} "}"))) (expression_statement "local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;" (assignment_expression "local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080" (identifier "local_212c") (= "=") (binary_expression "((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080" (parenthesized_expression "((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6)" (( "(") (binary_expression "(((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -\n                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6" (parenthesized_expression "(((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20))" (( "(") (binary_expression "((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -\n                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6)" (( "(") (binary_expression "(double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +\n                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "(double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40)" (cast_expression "(double)uStack_2120" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uStack_2120")) (+ "+") (binary_expression "dVar4 * *(double *)(iVar9 + 0x40)" (identifier "dVar4") (* "*") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x30) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x30) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")")))))) () ")")) (- "-") (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30)" (parenthesized_expression "((double)local_215c - 1.0)" (( "(") (binary_expression "(double)local_215c - 1.0" (cast_expression "(double)local_215c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_215c")) (- "-") (number_literal "1.0")) () ")")) (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (identifier "dVar6"))) () ")")) (+ "+") (identifier "local_2080"))) (; ";"))) (} "}"))) (expression_statement "iVar15 = *(int *)(iVar8 + 0x268);" (assignment_expression "iVar15 = *(int *)(iVar8 + 0x268)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar8 + 0x268)" (* "*") (cast_expression "(int *)(iVar8 + 0x268)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x268)" (( "(") (binary_expression "iVar8 + 0x268" (identifier "iVar8") (+ "+") (number_literal "0x268")) () ")"))))) (; ";")) (labeled_statement "joined_r0x0003a72a:\n        if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" (statement_identifier "joined_r0x0003a72a") (: ":") (if_statement "if (iVar15 == 2) {\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }\n        else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" (if "if") (parenthesized_expression "(iVar15 == 2)" (( "(") (binary_expression "iVar15 == 2" (identifier "iVar15") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;\n        }" ({ "{") (expression_statement "local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124;" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (identifier "local_2134") (= "=") (binary_expression "(*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6)" (( "(") (binary_expression "*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6" (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6"))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *\n                       (double)DAT_0029f124" (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))))) (; ";")) (expression_statement "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124;" (assignment_expression "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (identifier "local_212c") (= "=") (binary_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (parenthesized_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6)" (( "(") (binary_expression "*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" (identifier "dVar1") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (identifier "dVar6"))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *\n                       (double)DAT_0029f124" (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))))) (; ";")) (} "}")) (else_clause "else if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" (else "else") (if_statement "if (iVar15 == 3) {\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }\n        else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" (if "if") (parenthesized_expression "(iVar15 == 3)" (( "(") (binary_expression "iVar15 == 3" (identifier "iVar15") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);\n          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);\n        }" ({ "{") (expression_statement "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);" (assignment_expression "local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (identifier "local_2134") (= "=") (binary_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -\n                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (parenthesized_expression "(*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38))" (( "(") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (- "-") (binary_expression "*(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)" (pointer_expression "*(double *)(iVar9 + 0x18)" (* "*") (cast_expression "(double *)(iVar9 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")"))))))) (; ";")) (expression_statement "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);" (assignment_expression "local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (identifier "local_212c") (= "=") (binary_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -\n                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (parenthesized_expression "(*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6)" (( "(") (binary_expression "*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" (identifier "dVar1") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (identifier "dVar6"))) () ")")) (- "-") (binary_expression "(double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)" (cast_expression "(double)CONCAT44(uStack_2074,local_2078)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_2074,local_2078)" (identifier "CONCAT44") (argument_list "(uStack_2074,local_2078)" (( "(") (identifier "uStack_2074") (, ",") (identifier "local_2078") () ")")))) (* "*") (pointer_expression "*(double *)(iVar9 + 0x20)" (* "*") (cast_expression "(double *)(iVar9 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))))) (; ";")) (} "}")) (else_clause "else if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" (else "else") (if_statement "if (iVar15 == 1) {\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" (if "if") (parenthesized_expression "(iVar15 == 1)" (( "(") (binary_expression "iVar15 == 1" (identifier "iVar15") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);\n          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);\n        }" ({ "{") (expression_statement "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);" (assignment_expression "local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (identifier "local_2134") (= "=") (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1 * dVar6" (binary_expression "*(double *)(iVar9 + 0x28) * dVar1" (pointer_expression "*(double *)(iVar9 + 0x28)" (* "*") (cast_expression "(double *)(iVar9 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (identifier "dVar1")) (* "*") (identifier "dVar6")) (+ "+") (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (expression_statement "local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);" (assignment_expression "local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40)" (identifier "local_212c") (= "=") (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40)" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30) * dVar6" (binary_expression "dVar1 * *(double *)(iVar9 + 0x30)" (identifier "dVar1") (* "*") (pointer_expression "*(double *)(iVar9 + 0x30)" (* "*") (cast_expression "(double *)(iVar9 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (identifier "dVar6")) (+ "+") (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (} "}")))))))) (if_statement "if (*(double *)(param_2 + 0x128) != 0.0) {\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }" (if "if") (parenthesized_expression "(*(double *)(param_2 + 0x128) != 0.0)" (( "(") (binary_expression "*(double *)(param_2 + 0x128) != 0.0" (pointer_expression "*(double *)(param_2 + 0x128)" (* "*") (cast_expression "(double *)(param_2 + 0x128)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x128)" (( "(") (binary_expression "param_2 + 0x128" (identifier "param_2") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n          iVar15 = CloneDrawInfo(0,0);\n          puVar10 = (undefined4 *)(param_2 + 0xe8);\n          puVar16 = (undefined4 *)(iVar15 + 0x48);\n          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);\n          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);\n          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);\n          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);\n          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);\n          dVar1 = *(double *)(param_2 + 0x28);\n          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);\n          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);\n          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);\n          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;\n          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);\n          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );\n          CloneString(iVar15,local_1020);\n          DrawImage(param_1,iVar15,param_3);\n          DestroyDrawInfo(iVar15);\n        }" ({ "{") (expression_statement "iVar15 = CloneDrawInfo(0,0);" (assignment_expression "iVar15 = CloneDrawInfo(0,0)" (identifier "iVar15") (= "=") (call_expression "CloneDrawInfo(0,0)" (identifier "CloneDrawInfo") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(param_2 + 0xe8);" (assignment_expression "puVar10 = (undefined4 *)(param_2 + 0xe8)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(param_2 + 0xe8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xe8)" (( "(") (binary_expression "param_2 + 0xe8" (identifier "param_2") (+ "+") (number_literal "0xe8")) () ")")))) (; ";")) (expression_statement "puVar16 = (undefined4 *)(iVar15 + 0x48);" (assignment_expression "puVar16 = (undefined4 *)(iVar15 + 0x48)" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(iVar15 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x48)" (( "(") (binary_expression "iVar15 + 0x48" (identifier "iVar15") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (for_statement "for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "iVar12 = 0x14" (identifier "iVar12") (= "=") (number_literal "0x14")) (; ";") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" ({ "{") (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" (identifier "puVar10") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" (identifier "puVar16") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);" (assignment_expression "*(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18)" (pointer_expression "*(undefined4 *)(iVar15 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x18)" (( "(") (binary_expression "iVar15 + 0x18" (identifier "iVar15") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);" (assignment_expression "*(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20)" (pointer_expression "*(undefined4 *)(iVar15 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x20)" (( "(") (binary_expression "iVar15 + 0x20" (identifier "iVar15") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);" (assignment_expression "*(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24)" (pointer_expression "*(undefined4 *)(iVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x24)" (( "(") (binary_expression "iVar15 + 0x24" (identifier "iVar15") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);" (assignment_expression "*(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28)" (pointer_expression "*(undefined4 *)(iVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x28)" (( "(") (binary_expression "iVar15 + 0x28" (identifier "iVar15") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2c)" (( "(") (binary_expression "iVar15 + 0x2c" (identifier "iVar15") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "dVar1 = *(double *)(param_2 + 0x28);" (assignment_expression "dVar1 = *(double *)(param_2 + 0x28)" (identifier "dVar1") (= "=") (pointer_expression "*(double *)(param_2 + 0x28)" (* "*") (cast_expression "(double *)(param_2 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "*(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30)" (pointer_expression "*(undefined4 *)(iVar15 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x30)" (( "(") (binary_expression "iVar15 + 0x30" (identifier "iVar15") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(iVar15 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x34)" (( "(") (binary_expression "iVar15 + 0x34" (identifier "iVar15") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "*(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38)" (pointer_expression "*(undefined4 *)(iVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x38)" (( "(") (binary_expression "iVar15 + 0x38" (identifier "iVar15") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "*(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c)" (pointer_expression "*(undefined4 *)(iVar15 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x3c)" (( "(") (binary_expression "iVar15 + 0x3c" (identifier "iVar15") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;" (assignment_expression "*(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088" (pointer_expression "*(double *)(iVar15 + 0x38)" (* "*") (cast_expression "(double *)(iVar15 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x38)" (( "(") (binary_expression "iVar15 + 0x38" (identifier "iVar15") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "local_2134 - dVar1 * local_2088" (identifier "local_2134") (- "-") (binary_expression "dVar1 * local_2088" (identifier "dVar1") (* "*") (identifier "local_2088")))) (; ";")) (expression_statement "*(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);" (assignment_expression "*(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar15 + 0x40)" (* "*") (cast_expression "(double *)(iVar15 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x40)" (( "(") (binary_expression "iVar15 + 0x40" (identifier "iVar15") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "local_212c - local_2088 * *(double *)(param_2 + 0x30)" (identifier "local_212c") (- "-") (binary_expression "local_2088 * *(double *)(param_2 + 0x30)" (identifier "local_2088") (* "*") (pointer_expression "*(double *)(param_2 + 0x30)" (* "*") (cast_expression "(double *)(param_2 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))))) (; ";")) (expression_statement "FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            );" (call_expression "FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            )" (identifier "FormatLocaleString") (argument_list "(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6\n                            )" (( "(") (identifier "local_1020") (, ",") (number_literal "0x1000") (, ",") (string_literal ""rectangle 0.0,0.0 %g,%g"" (" """) (string_content "rectangle 0.0,0.0 %g,%g") (" """)) (, ",") (identifier "local_2030") (, ",") (identifier "local_202c") (, ",") (identifier "dVar6") () ")"))) (; ";")) (expression_statement "CloneString(iVar15,local_1020);" (call_expression "CloneString(iVar15,local_1020)" (identifier "CloneString") (argument_list "(iVar15,local_1020)" (( "(") (identifier "iVar15") (, ",") (identifier "local_1020") () ")"))) (; ";")) (expression_statement "DrawImage(param_1,iVar15,param_3);" (call_expression "DrawImage(param_1,iVar15,param_3)" (identifier "DrawImage") (argument_list "(param_1,iVar15,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar15") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "DestroyDrawInfo(iVar15);" (call_expression "DestroyDrawInfo(iVar15)" (identifier "DestroyDrawInfo") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "local_216c = local_1020;" (assignment_expression "local_216c = local_1020" (identifier "local_216c") (= "=") (identifier "local_1020")) (; ";")) (expression_statement "*(double *)(iVar9 + 0x38) = local_2134;" (assignment_expression "*(double *)(iVar9 + 0x38) = local_2134" (pointer_expression "*(double *)(iVar9 + 0x38)" (* "*") (cast_expression "(double *)(iVar9 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "local_2134")) (; ";")) (expression_statement "*(double *)(iVar9 + 0x40) = local_212c;" (assignment_expression "*(double *)(iVar9 + 0x40) = local_212c" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "local_212c")) (; ";")) (expression_statement "dVar1 = *(double *)(iVar9 + 0xd8);" (assignment_expression "dVar1 = *(double *)(iVar9 + 0xd8)" (identifier "dVar1") (= "=") (pointer_expression "*(double *)(iVar9 + 0xd8)" (* "*") (cast_expression "(double *)(iVar9 + 0xd8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xd8)" (( "(") (binary_expression "iVar9 + 0xd8" (identifier "iVar9") (+ "+") (number_literal "0xd8")) () ")"))))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x48);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x48)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar9 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x48)" (( "(") (binary_expression "iVar9 + 0x48" (identifier "iVar9") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "puVar16 = local_20e8;" (assignment_expression "puVar16 = local_20e8" (identifier "puVar16") (= "=") (identifier "local_20e8")) (; ";")) (for_statement "for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "iVar15 = 0x14" (identifier "iVar15") (= "=") (number_literal "0x14")) (; ";") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          *puVar16 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" (identifier "puVar10") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" (identifier "puVar16") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (dVar1 != 0.0) {\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(dVar1 != 0.0)" (( "(") (binary_expression "dVar1 != 0.0" (identifier "dVar1") (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n          puVar10 = (undefined4 *)(iVar9 + 0x98);\n          puVar16 = local_20e8;\n          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n        }" ({ "{") (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x98);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x98)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar9 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x98)" (( "(") (binary_expression "iVar9 + 0x98" (identifier "iVar9") (+ "+") (number_literal "0x98")) () ")")))) (; ";")) (expression_statement "puVar16 = local_20e8;" (assignment_expression "puVar16 = local_20e8" (identifier "puVar16") (= "=") (identifier "local_20e8")) (; ";")) (for_statement "for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "iVar15 = 0x14" (identifier "iVar15") (= "=") (number_literal "0x14")) (; ";") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n            *puVar16 = *puVar10;\n            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" ({ "{") (expression_statement "*puVar16 = *puVar10;" (assignment_expression "*puVar16 = *puVar10" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "puVar10 = puVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar18 * -2 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + (uint)bVar18 * -2 + 1" (binary_expression "puVar10 + (uint)bVar18 * -2" (identifier "puVar10") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" (identifier "puVar16") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);" (call_expression "QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3)" (identifier "QueryColorname") (argument_list "(param_1,local_20e8,0x7fffffff,local_2020,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "local_20e8") (, ",") (number_literal "0x7fffffff") (, ",") (identifier "local_2020") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074);" (call_expression "FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074)" (identifier "FormatLocaleString") (argument_list "(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,\n                           local_2058,local_2054,local_2078,uStack_2074)" (( "(") (identifier "local_216c") (, ",") (number_literal "0x1000") (, ",") (string_literal ""stroke %s stroke-width %g line 0,0 %g,0"" (" """) (string_content "stroke %s stroke-width %g line 0,0 %g,0") (" """)) (, ",") (identifier "local_2020") (, ",") (identifier "local_2058") (, ",") (identifier "local_2054") (, ",") (identifier "local_2078") (, ",") (identifier "uStack_2074") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar8 + 0x230) == 2) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }\n        else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 2)" (( "(") (binary_expression "*(int *)(iVar8 + 0x230) == 2" (pointer_expression "*(int *)(iVar8 + 0x230)" (* "*") (cast_expression "(int *)(iVar8 + 0x230)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x230)" (( "(") (binary_expression "iVar8 + 0x230" (identifier "iVar8") (+ "+") (number_literal "0x230")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" ({ "{") (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "*(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (- "-") (binary_expression "*(double *)(param_2 + 0x30) * local_2060" (pointer_expression "*(double *)(param_2 + 0x30)" (* "*") (cast_expression "(double *)(param_2 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "local_2060")))) (; ";")) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" (identifier "CloneString") (argument_list "(iVar9,local_216c)" (( "(") (identifier "iVar9") (, ",") (identifier "local_216c") () ")"))) (; ";")) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" (identifier "DrawImage") (argument_list "(param_1,iVar9,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar9") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (else_clause "else if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" (else "else") (if_statement "if (*(int *)(iVar8 + 0x230) == 3) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 3)" (( "(") (binary_expression "*(int *)(iVar8 + 0x230) == 3" (pointer_expression "*(int *)(iVar8 + 0x230)" (* "*") (cast_expression "(int *)(iVar8 + 0x230)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x230)" (( "(") (binary_expression "iVar8 + 0x230" (identifier "iVar8") (+ "+") (number_literal "0x230")) () ")")))) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" ({ "{") (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "*(double *)(iVar9 + 0x40) -\n               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (- "-") (binary_expression "((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30)" (parenthesized_expression "((local_2088 + local_2080) - local_2060)" (( "(") (binary_expression "(local_2088 + local_2080) - local_2060" (parenthesized_expression "(local_2088 + local_2080)" (( "(") (binary_expression "local_2088 + local_2080" (identifier "local_2088") (+ "+") (identifier "local_2080")) () ")")) (- "-") (identifier "local_2060")) () ")")) (* "*") (pointer_expression "*(double *)(param_2 + 0x30)" (* "*") (cast_expression "(double *)(param_2 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))))) (; ";")) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" (identifier "CloneString") (argument_list "(iVar9,local_216c)" (( "(") (identifier "iVar9") (, ",") (identifier "local_216c") () ")"))) (; ";")) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" (identifier "DrawImage") (argument_list "(param_1,iVar9,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar9") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))))) (expression_statement "iVar15 = FUN_00039740(local_2098,param_3);" (assignment_expression "iVar15 = FUN_00039740(local_2098,param_3)" (identifier "iVar15") (= "=") (call_expression "FUN_00039740(local_2098,param_3)" (identifier "FUN_00039740") (argument_list "(local_2098,param_3)" (( "(") (identifier "local_2098") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(int *)(iVar8 + 0x230) == 4) {\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x230) == 4)" (( "(") (binary_expression "*(int *)(iVar8 + 0x230) == 4" (pointer_expression "*(int *)(iVar8 + 0x230)" (* "*") (cast_expression "(int *)(iVar8 + 0x230)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x230)" (( "(") (binary_expression "iVar8 + 0x230" (identifier "iVar8") (+ "+") (number_literal "0x230")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          *(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;\n          CloneString(iVar9,local_216c);\n          DrawImage(param_1,iVar9,param_3);\n        }" ({ "{") (expression_statement "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124;" (assignment_expression "*(double *)(iVar9 + 0x40) =\n               *(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "*(double *)(iVar9 + 0x40) -\n               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (pointer_expression "*(double *)(iVar9 + 0x40)" (* "*") (cast_expression "(double *)(iVar9 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")")))) (- "-") (binary_expression "(local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *\n               (double)DAT_0029f124" (binary_expression "(local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30)" (parenthesized_expression "(local_2080 + local_2080 + dVar6 + local_2060)" (( "(") (binary_expression "local_2080 + local_2080 + dVar6 + local_2060" (binary_expression "local_2080 + local_2080 + dVar6" (binary_expression "local_2080 + local_2080" (identifier "local_2080") (+ "+") (identifier "local_2080")) (+ "+") (identifier "dVar6")) (+ "+") (identifier "local_2060")) () ")")) (* "*") (pointer_expression "*(double *)(param_2 + 0x30)" (* "*") (cast_expression "(double *)(param_2 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (* "*") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))))) (; ";")) (expression_statement "CloneString(iVar9,local_216c);" (call_expression "CloneString(iVar9,local_216c)" (identifier "CloneString") (argument_list "(iVar9,local_216c)" (( "(") (identifier "iVar9") (, ",") (identifier "local_216c") () ")"))) (; ";")) (expression_statement "DrawImage(param_1,iVar9,param_3);" (call_expression "DrawImage(param_1,iVar9,param_3)" (identifier "DrawImage") (argument_list "(param_1,iVar9,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar9") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0003a60a:\n        local_2188 = local_2188 + 1;" (statement_identifier "LAB_0003a60a") (: ":") (expression_statement "local_2188 = local_2188 + 1;" (assignment_expression "local_2188 = local_2188 + 1" (identifier "local_2188") (= "=") (binary_expression "local_2188 + 1" (identifier "local_2188") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pcVar13 = (char *)local_2174[local_2188];" (assignment_expression "pcVar13 = (char *)local_2174[local_2188]" (identifier "pcVar13") (= "=") (cast_expression "(char *)local_2174[local_2188]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_2174[local_2188]" (identifier "local_2174") ([ "[") (identifier "local_2188") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar13 != (char *)0x0)" (( "(") (binary_expression "pcVar13 != (char *)0x0" (identifier "pcVar13") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (} "}"))) (expression_statement "DestroyDrawInfo(iVar9);" (call_expression "DestroyDrawInfo(iVar9)" (identifier "DestroyDrawInfo") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "DestroyDrawInfo(iVar8);" (call_expression "DestroyDrawInfo(iVar8)" (identifier "DestroyDrawInfo") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(local_2174);" (call_expression "RelinquishMagickMemory(local_2174)" (identifier "RelinquishMagickMemory") (argument_list "(local_2174)" (( "(") (identifier "local_2174") () ")"))) (; ";")) (expression_statement "DestroyString(pcVar2);" (call_expression "DestroyString(pcVar2)" (identifier "DestroyString") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (labeled_statement "LAB_00039fee:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" (statement_identifier "LAB_00039fee") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" ({ "{") (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar15;" (return "return") (identifier "iVar15") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 function_1(type_2 *var_2,type_3 *var_6,type_4 *exception)

{
  double var_36;
  double var_37;
  double var_34;
  int var_54;
  char *string;
  type_5 var_40;
  double var_38;
  double var_39;
  double var_35;
  char var_8;
  type_3 *draw_info_00;
  type_3 *draw_info_01;
  int *var_15;
  type_3 *draw_info_02;
  size_t count;
  char *var_11;
  char *pcVar12;
  type_1 var_23;
  int var_13;
  type_6 *pPVar15;
  type_7 *pTVar16;
  type_6 *pPVar17;
  char *var_12;
  int var_1;
  type_8 bVar19;
  int var_52;
  type_9 local_217c;
  int *var_10;
  char *local_216c;
  size_t var_14;
  int var_32;
  type_10 __cw;
  type_10 __cwtmp;
  type_11 offset;
  type_12 geometry;
  type_13 geometry_info;
  type_6 pixel;
  type_7 metrics;
  char color [4096];
  char primitive [4096];
  
  bVar19 = 0;
  var_54 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","MagickCore/annotate.c",0x105,"AnnotateImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,
                  "AnnotateImage");
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"MagickCore/annotate.c","AnnotateImage",0x108,"%s",var_2->filename);
  }
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"AnnotateImage");
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,
                  "AnnotateImage");
  }
  var_23 = var_4;
  if ((var_6->text == (char *)0x0) || (var_23 = MagickTrue, *var_6->text == '\0'))
  goto LAB_00039fee;
  draw_info_00 = var_7((type_14 *)0x0,var_6);
  string = draw_info_00->text;
  draw_info_00->text = (char *)0x0;
  draw_info_01 = var_7((type_14 *)0x0,var_6);
  var_8 = *string;
  if (var_8 == '\0') {
    var_10 = (int *)var_9(2,4);
    if (var_10 == (int *)0x0) goto LAB_0003ae11;
    var_14 = 1;
LAB_0003a0a2:
    var_13 = 0;
    var_11 = string;
    do {
      var_10[var_13] = (int)var_11;
      var_8 = *var_11;
      var_12 = var_11 + 1;
      pcVar12 = var_12;
      if (var_8 != '\0') {
        if ((var_8 != '\n') && (var_8 != '\r')) {
          do {
            var_11 = var_12;
            var_8 = *var_11;
            pcVar12 = var_11 + 1;
            if (var_8 == '\0') goto LAB_0003a0fa;
            var_12 = pcVar12;
          } while ((var_8 != '\r') && (var_8 != '\n'));
        }
        pcVar12 = var_12;
        if (var_8 == '\r') {
          *var_11 = '\0';
          pcVar12 = var_12 + 1;
          var_11 = var_12;
        }
      }
LAB_0003a0fa:
      var_13 = var_13 + 1;
      *var_11 = '\0';
      var_11 = pcVar12;
    } while (var_13 < (int)var_14);
    var_15 = var_10 + var_14;
  }
  else {
    var_14 = 1;
    var_11 = string;
    do {
      count = var_14 + 1;
      if (var_8 == '\n') {
        count = var_14 + 2;
        var_14 = var_14 + 1;
      }
      var_11 = var_11 + 1;
      var_8 = *var_11;
    } while (var_8 != '\0');
    var_15 = (int *)var_9(count,4);
    if (var_15 == (int *)0x0) {
LAB_0003ae11:
      var_16(draw_info_01);
      var_23 = var_4;
      var_16(draw_info_00);
      var_17(string);
      goto LAB_00039fee;
    }
    var_10 = var_15;
    if (0 < (int)var_14) goto LAB_0003a0a2;
  }
  *var_15 = 0;
  var_18(var_2,&geometry);
  var_19(&geometry_info);
  if (draw_info_01->geometry != (char *)0x0) {
    var_20(var_2,draw_info_01->geometry,&geometry,exception);
    var_21(draw_info_01->geometry,&geometry_info);
  }
  var_23 = var_22(var_2,DirectClass,exception);
  if (var_23 != var_4) {
    if ((var_2->colorspace == var_24) || (var_2->colorspace == var_25)) {
      var_26(var_2,sRGBColorspace,exception);
    }
    pTVar16 = &metrics;
    for (var_13 = 0x1e; var_13 != 0; var_13 = var_13 + -1) {
      *(type_15 *)&(pTVar16->pixels_per_em).x = 0;
      pTVar16 = (type_7 *)((int)pTVar16 + (type_16)bVar19 * -8 + 4);
    }
    var_11 = (char *)*var_10;
    if (var_11 == (char *)0x0) {
      var_23 = MagickTrue;
    }
    else {
      var_52 = 0;
      var_23 = MagickTrue;
      do {
        if (*var_11 == '\0') goto LAB_0003a60a;
        (draw_info_01->affine).tx = geometry_info.xi - (double)(var_2->page).x;
        (draw_info_01->affine).ty = geometry_info.psi - (double)(var_2->page).y;
        var_27(&draw_info_00->text,var_11);
        if (((double)var_28(metrics.width._4_4_,metrics.width._0_4_) == 0.0) ||
           (draw_info_00->gravity != var_29)) {
          var_30(var_2,draw_info_00,&metrics,exception);
        }
        var_32 = (int)(type_17)
                          var_31(var_31((metrics.ascent - metrics.descent) + (double)var_33));
        var_13 = var_32;
        if (var_32 == 0) {
          var_32 = (int)(type_17)var_31(var_6->pointsize);
          var_13 = var_32;
        }
        var_34 = (double)var_52;
        var_32 = (int)(type_17)var_31(var_31(var_33 + (float)var_6->interline_spacing))
        ;
        local_217c = (type_18)(type_16)(var_32 + var_13);
        var_35 = (double)local_217c;
        switch(draw_info_00->gravity) {
        case ForgetGravity:
        default:
          offset.x = (draw_info_01->affine).ry * var_34 * var_35 + (draw_info_01->affine).tx;
          offset.y = (draw_info_01->affine).sy * var_34 * var_35 + (draw_info_01->affine).ty;
          break;
        case var_29:
          var_37 = 1.0;
          if (geometry.width == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          offset.x = var_36 * var_34 * var_35 + var_37 * (draw_info_01->affine).tx +
                     (metrics.descent + metrics.ascent) * var_36;
          var_37 = 1.0;
          if (geometry.height == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          offset.y = metrics.ascent * var_36 +
                     var_36 * var_34 * var_35 + var_37 * (draw_info_01->affine).ty;
          break;
        case NorthGravity:
          var_37 = 1.0;
          if (geometry.width == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          offset.x = ((var_36 * var_34 * var_35 +
                      var_37 * (draw_info_01->affine).tx +
                      (double)geometry.width * (double)var_33) -
                     (draw_info_01->affine).sx *
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (double)var_33) + (metrics.descent + metrics.ascent) * var_36;
          var_37 = 1.0;
          if (geometry.height == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          offset.y = (metrics.ascent * var_36 +
                     var_36 * var_34 * var_35 + var_37 * (draw_info_01->affine).ty) -
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx * (double)var_33;
          break;
        case NorthEastGravity:
          var_37 = 1.0;
          if (geometry.width != 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          offset.x = (((var_36 * var_34 * var_35 +
                       (double)geometry.width + var_37 * (draw_info_01->affine).tx) -
                      (draw_info_01->affine).sx *
                      (double)var_28(metrics.width._4_4_,metrics.width._0_4_)) +
                     (metrics.descent + metrics.ascent) * var_36) - 1.0;
          var_37 = 1.0;
          if (geometry.height == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          offset.y = (metrics.ascent * var_36 +
                     var_36 * var_34 * var_35 + var_37 * (draw_info_01->affine).ty) -
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx;
          break;
        case WestGravity:
          var_37 = 1.0;
          if (geometry.width == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          var_38 = (metrics.ascent + metrics.descent) - ((double)var_14 - 1.0) * var_35;
          offset.x = var_36 * var_38 * (double)var_33 +
                     var_37 * (draw_info_01->affine).tx + var_36 * var_34 * var_35;
          var_37 = 1.0;
          if (geometry.height == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          offset.y = (double)var_33 * var_38 * var_36 +
                     var_36 * var_34 * var_35 +
                     var_37 * (draw_info_01->affine).ty +
                     (double)geometry.height * (double)var_33;
          break;
        case CenterGravity:
          var_37 = 1.0;
          if (geometry.width == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          var_39 = (metrics.ascent + metrics.descent) - ((double)var_14 - 1.0) * var_35;
          var_38 = (double)var_33;
          offset.x = var_36 * var_39 * var_38 +
                     ((var_36 * var_34 * var_35 +
                      var_37 * (draw_info_01->affine).tx + (double)geometry.width * var_38) -
                     (draw_info_01->affine).sx *
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) * var_38);
          var_37 = 1.0;
          if (geometry.height == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          var_38 = (double)var_33;
          offset.y = var_39 * var_36 * var_38 +
                     ((var_36 * var_34 * var_35 +
                      var_37 * (draw_info_01->affine).ty + (double)geometry.height * var_38) -
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx * var_38);
          break;
        case EastGravity:
          var_37 = 1.0;
          if (geometry.width != 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          var_38 = (metrics.ascent + metrics.descent) - ((double)var_14 - 1.0) * var_35;
          offset.x = (var_36 * var_38 * (double)var_33 +
                     ((var_36 * var_34 * var_35 +
                      (double)geometry.width + var_37 * (draw_info_01->affine).tx) -
                     (draw_info_01->affine).sx *
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_))) - 1.0;
          var_37 = 1.0;
          if (geometry.height == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          offset.y = var_38 * var_36 * (double)var_33 +
                     ((var_36 * var_34 * var_35 +
                      var_37 * (draw_info_01->affine).ty +
                      (double)geometry.height * (double)var_33) -
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx);
          break;
        case SouthWestGravity:
          var_37 = 1.0;
          if (geometry.width == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          offset.x = (var_36 * var_34 * var_35 + var_37 * (draw_info_01->affine).tx) -
                     var_36 * ((double)var_14 - 1.0) * var_35;
          var_37 = 1.0;
          if (geometry.height != 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          var_37 = var_36 * var_34 * var_35 +
                  (double)geometry.height + var_37 * (draw_info_01->affine).ty;
          var_36 = ((double)var_14 - 1.0) * var_36;
          goto LAB_0003a70e;
        case SouthGravity:
          var_37 = 1.0;
          if (geometry.width == 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          var_38 = (double)var_33;
          offset.x = ((var_36 * var_34 * var_35 +
                      var_37 * (draw_info_01->affine).tx + (double)geometry.width * var_38) -
                     (draw_info_01->affine).sx *
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) * var_38) -
                     var_36 * ((double)var_14 - 1.0) * var_35 * var_38;
          var_37 = 1.0;
          if (geometry.height != 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).sy;
          var_37 = ((double)geometry.height + var_37 * (draw_info_01->affine).ty +
                  var_36 * var_34 * var_35) -
                  (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                  (draw_info_01->affine).rx * (double)var_33;
          var_36 = ((double)var_14 - 1.0) * var_36;
LAB_0003a70e:
          var_40 = draw_info_00->align;
          offset.y = (var_37 - var_36 * var_35) + metrics.descent;
          goto joined_r0x0003a72a;
        case SouthEastGravity:
          var_37 = 1.0;
          if (geometry.width != 0) {
            var_37 = -1.0;
          }
          var_36 = (draw_info_01->affine).ry;
          var_38 = 1.0;
          offset.x = (((var_36 * var_34 * var_35 +
                       (double)geometry.width + var_37 * (draw_info_01->affine).tx) -
                      (draw_info_01->affine).sx *
                      (double)var_28(metrics.width._4_4_,metrics.width._0_4_)) -
                     var_36 * ((double)var_14 - 1.0) * var_35) - 1.0;
          if (geometry.height != 0) {
            var_38 = -1.0;
          }
          var_37 = (draw_info_01->affine).sy;
          offset.y = ((((double)geometry.height + var_38 * (draw_info_01->affine).ty +
                       var_37 * var_34 * var_35) -
                      (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                      (draw_info_01->affine).rx) - ((double)var_14 - 1.0) * var_37 * var_35) +
                     metrics.descent;
        }
        var_40 = draw_info_00->align;
joined_r0x0003a72a:
        if (var_40 == var_41) {
          offset.x = ((draw_info_01->affine).tx + (draw_info_01->affine).ry * var_34 * var_35) -
                     (draw_info_01->affine).sx *
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (double)var_33;
          offset.y = ((draw_info_01->affine).ty + var_34 * (draw_info_01->affine).sy * var_35) -
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx * (double)var_33;
        }
        else if (var_40 == var_42) {
          offset.x = ((draw_info_01->affine).ry * var_34 * var_35 + (draw_info_01->affine).tx) -
                     (draw_info_01->affine).sx *
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_);
          offset.y = ((draw_info_01->affine).ty + var_34 * (draw_info_01->affine).sy * var_35) -
                     (double)var_28(metrics.width._4_4_,metrics.width._0_4_) *
                     (draw_info_01->affine).rx;
        }
        else if (var_40 == var_43) {
          offset.x = (draw_info_01->affine).ry * var_34 * var_35 + (draw_info_01->affine).tx;
          offset.y = var_34 * (draw_info_01->affine).sy * var_35 + (draw_info_01->affine).ty;
        }
        if ((var_6->undercolor).alpha != 0.0) {
          draw_info_02 = var_7((type_14 *)0x0,(type_3 *)0x0);
          pPVar15 = &var_6->undercolor;
          pPVar17 = &draw_info_02->fill;
          for (var_13 = 0x14; var_13 != 0; var_13 = var_13 + -1) {
            pPVar17->storage_class = pPVar15->storage_class;
            pPVar15 = (type_6 *)((int)pPVar15 + (type_16)bVar19 * -8 + 4);
            pPVar17 = (type_6 *)((int)pPVar17 + (type_16)bVar19 * -8 + 4);
          }
          *(type_15 *)&(draw_info_02->affine).sx = *(type_15 *)&(var_6->affine).sx;
          *(type_15 *)((int)&(draw_info_02->affine).sx + 4) =
               *(type_15 *)((int)&(var_6->affine).sx + 4);
          *(type_15 *)&(draw_info_02->affine).rx = *(type_15 *)&(var_6->affine).rx;
          *(type_15 *)((int)&(draw_info_02->affine).rx + 4) =
               *(type_15 *)((int)&(var_6->affine).rx + 4);
          *(type_15 *)&(draw_info_02->affine).ry = *(type_15 *)&(var_6->affine).ry;
          *(type_15 *)((int)&(draw_info_02->affine).ry + 4) =
               *(type_15 *)((int)&(var_6->affine).ry + 4);
          var_34 = (var_6->affine).ry;
          *(type_15 *)&(draw_info_02->affine).sy = *(type_15 *)&(var_6->affine).sy;
          *(type_15 *)((int)&(draw_info_02->affine).sy + 4) =
               *(type_15 *)((int)&(var_6->affine).sy + 4);
          *(type_15 *)&(draw_info_02->affine).tx = *(type_15 *)&(var_6->affine).tx;
          *(type_15 *)((int)&(draw_info_02->affine).tx + 4) =
               *(type_15 *)((int)&(var_6->affine).tx + 4);
          (draw_info_02->affine).tx = offset.x - var_34 * metrics.ascent;
          (draw_info_02->affine).ty = offset.y - metrics.ascent * (var_6->affine).sy;
          local_217c._4_4_ = (type_15)((type_18)var_35 >> 0x20);
          local_217c._0_4_ = var_44(var_35,0);
          var_45(primitive,0x1000,"rectangle 0.0,0.0 %g,%g",metrics.origin.x._0_4_,
                             metrics.origin.x._4_4_,(type_15)local_217c,local_217c._4_4_);
          var_27(&draw_info_02->primitive,primitive);
          var_46(var_2,draw_info_02,exception);
          var_16(draw_info_02);
        }
        local_216c = primitive;
        (draw_info_01->affine).tx = offset.x;
        (draw_info_01->affine).ty = offset.y;
        var_34 = (draw_info_01->stroke).alpha;
        pPVar15 = &draw_info_01->fill;
        pPVar17 = &pixel;
        for (var_13 = 0x14; var_13 != 0; var_13 = var_13 + -1) {
          pPVar17->storage_class = pPVar15->storage_class;
          pPVar15 = (type_6 *)((int)pPVar15 + (type_16)bVar19 * -8 + 4);
          pPVar17 = (type_6 *)((int)pPVar17 + (type_16)bVar19 * -8 + 4);
        }
        if (var_34 != 0.0) {
          pPVar15 = &draw_info_01->stroke;
          pPVar17 = &pixel;
          for (var_13 = 0x14; var_13 != 0; var_13 = var_13 + -1) {
            pPVar17->storage_class = pPVar15->storage_class;
            pPVar15 = (type_6 *)((int)pPVar15 + (type_16)bVar19 * -8 + 4);
            pPVar17 = (type_6 *)((int)pPVar17 + (type_16)bVar19 * -8 + 4);
          }
        }
        var_47(var_2,&pixel,AllCompliance,color,exception);
        var_45(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",color,
                           metrics.underline_thickness._0_4_,metrics.underline_thickness._4_4_,
                           metrics.width._0_4_,metrics.width._4_4_);
        if (draw_info_00->decorate == var_48) {
          (draw_info_01->affine).ty =
               (draw_info_01->affine).ty - (var_6->affine).sy * metrics.underline_position;
          var_27(&draw_info_01->primitive,local_216c);
          var_46(var_2,draw_info_01,exception);
        }
        else if (draw_info_00->decorate == var_49) {
          (draw_info_01->affine).ty =
               (draw_info_01->affine).ty -
               ((metrics.ascent + metrics.descent) - metrics.underline_position) *
               (var_6->affine).sy;
          var_27(&draw_info_01->primitive,local_216c);
          var_46(var_2,draw_info_01,exception);
        }
        var_23 = var_50(var_2,draw_info_00,&offset,&metrics,exception);
        if (var_23 == var_4) break;
        if (draw_info_00->decorate == var_51) {
          (draw_info_01->affine).ty =
               (draw_info_01->affine).ty -
               (metrics.descent + metrics.descent + var_35 + metrics.underline_position) *
               (var_6->affine).sy * (double)var_33;
          var_27(&draw_info_01->primitive,local_216c);
          var_46(var_2,draw_info_01,exception);
        }
LAB_0003a60a:
        var_52 = var_52 + 1;
        var_11 = (char *)var_10[var_52];
      } while (var_11 != (char *)0x0);
    }
  }
  var_16(draw_info_01);
  var_16(draw_info_00);
  var_53(var_10);
  var_17(string);
LAB_00039fee:
  if (var_54 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_55();
  }
  return var_23;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (escape_sequence))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (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: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (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: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (switch_statement condition: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) body: (compound_statement (case_statement value: (number_literal)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier))) 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))))))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (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: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression 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))))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (break_statement)) (case_statement value: (number_literal) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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)))))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (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))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (identifier)))) right: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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)))))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (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))) (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: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression 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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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)))))) (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)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content)) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content)) (identifier) (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (subscript_expression argument: (identifier) index: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int MASKED(int param_1,int param_2,undefined4 param_3)

{
  double dVar1;
  char *pcVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  char cVar7;
  int iVar8;
  int iVar9;
  undefined4 *puVar10;
  uint uVar11;
  int iVar12;
  char *pcVar13;
  char *pcVar14;
  int iVar15;
  undefined4 *puVar16;
  char *pcVar17;
  int in_GS_OFFSET;
  byte bVar18;
  int local_2188;
  ulonglong local_217c;
  undefined4 *local_2174;
  undefined1 *local_216c;
  uint local_215c;
  int local_2154;
  double local_2134;
  double local_212c;
  uint local_2124;
  uint uStack_2120;
  undefined1 local_2114 [16];
  double local_2104;
  double local_20fc;
  undefined4 local_20e8 [20];
  undefined4 local_2098 [4];
  double local_2088;
  double local_2080;
  undefined4 local_2078;
  undefined4 uStack_2074;
  double local_2060;
  undefined4 local_2058;
  undefined4 local_2054;
  undefined4 local_2030;
  undefined4 local_202c;
  undefined1 local_2020 [4096];
  undefined1 local_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  bVar18 = 0;
  uStack_14 = 0x39f49;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/annotate.c",0x105,"MASKED");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/annotate.c",0x106,
                  "MASKED");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/annotate.c","MASKED",0x108,&DAT_002b6e4e,
                   param_1 + 0x318);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("draw_info != (DrawInfo *) NULL","MagickCore/annotate.c",0x109,"MASKED");
  }
  if (*(int *)(param_2 + 0x358) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("draw_info->signature == MagickCoreSignature","MagickCore/annotate.c",0x10a,
                  "MASKED");
  }
  iVar15 = 0;
  if ((*(char **)(param_2 + 0x238) == (char *)0x0) ||
     (iVar15 = 1, **(char **)(param_2 + 0x238) == '\0')) goto LAB_00039fee;
  iVar8 = CloneDrawInfo(0,param_2);
  pcVar2 = *(char **)(iVar8 + 0x238);
  *(undefined4 *)(iVar8 + 0x238) = 0;
  iVar9 = CloneDrawInfo(0,param_2);
  cVar7 = *pcVar2;
  if (cVar7 == '\0') {
    local_2174 = (undefined4 *)AcquireQuantumMemory(2,4);
    if (local_2174 == (undefined4 *)0x0) goto LAB_0003ae11;
    local_215c = 1;
LAB_0003a0a2:
    iVar15 = 0;
    pcVar13 = pcVar2;
    do {
      local_2174[iVar15] = pcVar13;
      cVar7 = *pcVar13;
      pcVar17 = pcVar13 + 1;
      pcVar14 = pcVar17;
      if (cVar7 != '\0') {
        if ((cVar7 != '\n') && (cVar7 != '\r')) {
          do {
            pcVar13 = pcVar17;
            cVar7 = *pcVar13;
            pcVar14 = pcVar13 + 1;
            if (cVar7 == '\0') goto LAB_0003a0fa;
            pcVar17 = pcVar14;
          } while ((cVar7 != '\r') && (cVar7 != '\n'));
        }
        pcVar14 = pcVar17;
        if (cVar7 == '\r') {
          *pcVar13 = '\0';
          pcVar14 = pcVar17 + 1;
          pcVar13 = pcVar17;
        }
      }
LAB_0003a0fa:
      iVar15 = iVar15 + 1;
      *pcVar13 = '\0';
      pcVar13 = pcVar14;
    } while (iVar15 < (int)local_215c);
    puVar10 = local_2174 + local_215c;
  }
  else {
    local_215c = 1;
    pcVar13 = pcVar2;
    do {
      uVar11 = local_215c + 1;
      if (cVar7 == '\n') {
        uVar11 = local_215c + 2;
        local_215c = local_215c + 1;
      }
      pcVar13 = pcVar13 + 1;
      cVar7 = *pcVar13;
    } while (cVar7 != '\0');
    puVar10 = (undefined4 *)AcquireQuantumMemory(uVar11,4);
    if (puVar10 == (undefined4 *)0x0) {
LAB_0003ae11:
      DestroyDrawInfo(iVar9);
      iVar15 = 0;
      DestroyDrawInfo(iVar8);
      DestroyString(pcVar2);
      goto LAB_00039fee;
    }
    local_2174 = puVar10;
    if (0 < (int)local_215c) goto LAB_0003a0a2;
  }
  *puVar10 = 0;
  SetGeometry(param_1,&local_2124);
  SetGeometryInfo(local_2114);
  if (*(int *)(iVar9 + 4) != 0) {
    ParsePageGeometry(param_1,*(int *)(iVar9 + 4),&local_2124,param_3);
    ParseGeometry(*(undefined4 *)(iVar9 + 4),local_2114);
  }
  iVar15 = SetImageStorageClass(param_1,1,param_3);
  if (iVar15 != 0) {
    if ((*(int *)(param_1 + 4) == 0x21) || (*(int *)(param_1 + 4) == 3)) {
      SetImageColorspace(param_1,0x17,param_3);
    }
    puVar10 = local_2098;
    for (iVar15 = 0x1e; iVar15 != 0; iVar15 = iVar15 + -1) {
      *puVar10 = 0;
      puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
    }
    pcVar13 = (char *)*local_2174;
    if (pcVar13 == (char *)0x0) {
      iVar15 = 1;
    }
    else {
      local_2188 = 0;
      iVar15 = 1;
      do {
        if (*pcVar13 == '\0') goto LAB_0003a60a;
        *(double *)(iVar9 + 0x38) = local_2104 - (double)*(int *)(param_1 + 0x208);
        *(double *)(iVar9 + 0x40) = local_20fc - (double)*(int *)(param_1 + 0x20c);
        CloneString(iVar8 + 0x238,pcVar13);
        if (((double)CONCAT44(uStack_2074,local_2078) == 0.0) || (*(int *)(iVar8 + 0x26c) != 1)) {
          GetTypeMetrics(param_1,iVar8,local_2098,param_3);
        }
        local_2154 = (int)(longlong)ROUND(ROUND((local_2088 - local_2080) + (double)DAT_0029f124));
        iVar15 = local_2154;
        if (local_2154 == 0) {
          local_2154 = (int)(longlong)ROUND(*(double *)(param_2 + 0x25c));
          iVar15 = local_2154;
        }
        dVar1 = (double)local_2188;
        local_2154 = (int)(longlong)ROUND(ROUND(DAT_0029f124 + (float)*(double *)(param_2 + 0x348)))
        ;
        local_217c = (ulonglong)(uint)(local_2154 + iVar15);
        dVar6 = (double)local_217c;
        switch(*(undefined4 *)(iVar8 + 0x26c)) {
        case 0:
        default:
          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);
          local_212c = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + *(double *)(iVar9 + 0x40);
          break;
        case 1:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x38)
                       + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28);
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = local_2088 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)
          ;
          break;
        case 2:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x38) +
                        (double)local_2124 * (double)DAT_0029f124) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *
                       (double)DAT_0029f124) + (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)
          ;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)
                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *
                           (double)DAT_0029f124;
          break;
        case 3:
          dVar3 = 1.0;
          if (local_2124 != 0) {
            dVar3 = -1.0;
          }
          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -
                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) +
                       (local_2080 + local_2088) * *(double *)(iVar9 + 0x28)) - 1.0;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = (local_2088 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 + dVar3 * *(double *)(iVar9 + 0x40)
                       ) - (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);
          break;
        case 4:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;
          local_2134 = *(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +
                       dVar3 * *(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6
          ;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = (double)DAT_0029f124 * dVar4 * *(double *)(iVar9 + 0x30) +
                       *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                       dVar3 * *(double *)(iVar9 + 0x40) +
                       (double)uStack_2120 * (double)DAT_0029f124;
          break;
        case 5:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          dVar5 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;
          dVar4 = (double)DAT_0029f124;
          local_2134 = *(double *)(iVar9 + 0x28) * dVar5 * dVar4 +
                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)
          ;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          dVar4 = (double)DAT_0029f124;
          local_212c = dVar5 * *(double *)(iVar9 + 0x30) * dVar4 +
                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x40) + (double)uStack_2120 * dVar4) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) * dVar4)
          ;
          break;
        case 6:
          dVar3 = 1.0;
          if (local_2124 != 0) {
            dVar3 = -1.0;
          }
          dVar4 = (local_2088 + local_2080) - ((double)local_215c - 1.0) * dVar6;
          local_2134 = (*(double *)(iVar9 + 0x28) * dVar4 * (double)DAT_0029f124 +
                       ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078))) - 1.0;
          dVar3 = 1.0;
          if (uStack_2120 == 0) {
            dVar3 = -1.0;
          }
          local_212c = dVar4 * *(double *)(iVar9 + 0x30) * (double)DAT_0029f124 +
                       ((*(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x40) +
                        (double)uStack_2120 * (double)DAT_0029f124) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20));
          break;
        case 7:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                       dVar3 * *(double *)(iVar9 + 0x38)) -
                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6;
          dVar3 = 1.0;
          if (uStack_2120 != 0) {
            dVar3 = -1.0;
          }
          dVar3 = *(double *)(iVar9 + 0x30) * dVar1 * dVar6 +
                  (double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40);
          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);
          goto code_r0x0003a70e;
        case 8:
          dVar3 = 1.0;
          if (local_2124 == 0) {
            dVar3 = -1.0;
          }
          dVar4 = (double)DAT_0029f124;
          local_2134 = ((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                        dVar3 * *(double *)(iVar9 + 0x38) + (double)local_2124 * dVar4) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) * dVar4)
                       - *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6 * dVar4;
          dVar3 = 1.0;
          if (uStack_2120 != 0) {
            dVar3 = -1.0;
          }
          dVar3 = ((double)uStack_2120 + dVar3 * *(double *)(iVar9 + 0x40) +
                  *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -
                  (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *
                  (double)DAT_0029f124;
          dVar4 = ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30);
code_r0x0003a70e:
          iVar15 = *(int *)(iVar8 + 0x268);
          local_212c = (dVar3 - dVar4 * dVar6) + local_2080;
          goto joined_r0x0003a72a;
        case 9:
          dVar3 = 1.0;
          if (local_2124 != 0) {
            dVar3 = -1.0;
          }
          dVar4 = 1.0;
          local_2134 = (((*(double *)(iVar9 + 0x28) * dVar1 * dVar6 +
                         (double)local_2124 + dVar3 * *(double *)(iVar9 + 0x38)) -
                        *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078)) -
                       *(double *)(iVar9 + 0x28) * ((double)local_215c - 1.0) * dVar6) - 1.0;
          if (uStack_2120 != 0) {
            dVar4 = -1.0;
          }
          local_212c = ((((double)uStack_2120 + dVar4 * *(double *)(iVar9 + 0x40) +
                         *(double *)(iVar9 + 0x30) * dVar1 * dVar6) -
                        (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20)) -
                       ((double)local_215c - 1.0) * *(double *)(iVar9 + 0x30) * dVar6) + local_2080;
        }
        iVar15 = *(int *)(iVar8 + 0x268);
joined_r0x0003a72a:
        if (iVar15 == 2) {
          local_2134 = (*(double *)(iVar9 + 0x38) + *(double *)(iVar9 + 0x28) * dVar1 * dVar6) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078) *
                       (double)DAT_0029f124;
          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20) *
                       (double)DAT_0029f124;
        }
        else if (iVar15 == 3) {
          local_2134 = (*(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38)) -
                       *(double *)(iVar9 + 0x18) * (double)CONCAT44(uStack_2074,local_2078);
          local_212c = (*(double *)(iVar9 + 0x40) + dVar1 * *(double *)(iVar9 + 0x30) * dVar6) -
                       (double)CONCAT44(uStack_2074,local_2078) * *(double *)(iVar9 + 0x20);
        }
        else if (iVar15 == 1) {
          local_2134 = *(double *)(iVar9 + 0x28) * dVar1 * dVar6 + *(double *)(iVar9 + 0x38);
          local_212c = dVar1 * *(double *)(iVar9 + 0x30) * dVar6 + *(double *)(iVar9 + 0x40);
        }
        if (*(double *)(param_2 + 0x128) != 0.0) {
          iVar15 = CloneDrawInfo(0,0);
          puVar10 = (undefined4 *)(param_2 + 0xe8);
          puVar16 = (undefined4 *)(iVar15 + 0x48);
          for (iVar12 = 0x14; iVar12 != 0; iVar12 = iVar12 + -1) {
            *puVar16 = *puVar10;
            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
          }
          *(undefined4 *)(iVar15 + 0x18) = *(undefined4 *)(param_2 + 0x18);
          *(undefined4 *)(iVar15 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);
          *(undefined4 *)(iVar15 + 0x20) = *(undefined4 *)(param_2 + 0x20);
          *(undefined4 *)(iVar15 + 0x24) = *(undefined4 *)(param_2 + 0x24);
          *(undefined4 *)(iVar15 + 0x28) = *(undefined4 *)(param_2 + 0x28);
          *(undefined4 *)(iVar15 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);
          dVar1 = *(double *)(param_2 + 0x28);
          *(undefined4 *)(iVar15 + 0x30) = *(undefined4 *)(param_2 + 0x30);
          *(undefined4 *)(iVar15 + 0x34) = *(undefined4 *)(param_2 + 0x34);
          *(undefined4 *)(iVar15 + 0x38) = *(undefined4 *)(param_2 + 0x38);
          *(undefined4 *)(iVar15 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);
          *(double *)(iVar15 + 0x38) = local_2134 - dVar1 * local_2088;
          *(double *)(iVar15 + 0x40) = local_212c - local_2088 * *(double *)(param_2 + 0x30);
          FormatLocaleString(local_1020,0x1000,"rectangle 0.0,0.0 %g,%g",local_2030,local_202c,dVar6
                            );
          CloneString(iVar15,local_1020);
          DrawImage(param_1,iVar15,param_3);
          DestroyDrawInfo(iVar15);
        }
        local_216c = local_1020;
        *(double *)(iVar9 + 0x38) = local_2134;
        *(double *)(iVar9 + 0x40) = local_212c;
        dVar1 = *(double *)(iVar9 + 0xd8);
        puVar10 = (undefined4 *)(iVar9 + 0x48);
        puVar16 = local_20e8;
        for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {
          *puVar16 = *puVar10;
          puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
        }
        if (dVar1 != 0.0) {
          puVar10 = (undefined4 *)(iVar9 + 0x98);
          puVar16 = local_20e8;
          for (iVar15 = 0x14; iVar15 != 0; iVar15 = iVar15 + -1) {
            *puVar16 = *puVar10;
            puVar10 = puVar10 + (uint)bVar18 * -2 + 1;
            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
          }
        }
        QueryColorname(param_1,local_20e8,0x7fffffff,local_2020,param_3);
        FormatLocaleString(local_216c,0x1000,"stroke %s stroke-width %g line 0,0 %g,0",local_2020,
                           local_2058,local_2054,local_2078,uStack_2074);
        if (*(int *)(iVar8 + 0x230) == 2) {
          *(double *)(iVar9 + 0x40) =
               *(double *)(iVar9 + 0x40) - *(double *)(param_2 + 0x30) * local_2060;
          CloneString(iVar9,local_216c);
          DrawImage(param_1,iVar9,param_3);
        }
        else if (*(int *)(iVar8 + 0x230) == 3) {
          *(double *)(iVar9 + 0x40) =
               *(double *)(iVar9 + 0x40) -
               ((local_2088 + local_2080) - local_2060) * *(double *)(param_2 + 0x30);
          CloneString(iVar9,local_216c);
          DrawImage(param_1,iVar9,param_3);
        }
        iVar15 = FUN_00039740(local_2098,param_3);
        if (iVar15 == 0) break;
        if (*(int *)(iVar8 + 0x230) == 4) {
          *(double *)(iVar9 + 0x40) =
               *(double *)(iVar9 + 0x40) -
               (local_2080 + local_2080 + dVar6 + local_2060) * *(double *)(param_2 + 0x30) *
               (double)DAT_0029f124;
          CloneString(iVar9,local_216c);
          DrawImage(param_1,iVar9,param_3);
        }
LAB_0003a60a:
        local_2188 = local_2188 + 1;
        pcVar13 = (char *)local_2174[local_2188];
      } while (pcVar13 != (char *)0x0);
    }
  }
  DestroyDrawInfo(iVar9);
  DestroyDrawInfo(iVar8);
  RelinquishMagickMemory(local_2174);
  DestroyString(pcVar2);
LAB_00039fee:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return iVar15;
}

