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

ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,MagickBooleanType split,
                           TypeMetric *metrics,char **caption,ExceptionInfo *exception)

{
  uint *puVar1;
  byte bVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  uint uVar6;
  undefined4 *puVar7;
  char *pcVar8;
  int iVar9;
  uint uVar10;
  uint *puVar11;
  int iVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint *puVar15;
  byte *pbVar16;
  uint *puVar17;
  byte *pbVar18;
  byte *pbVar19;
  uint uVar20;
  byte *pbVar21;
  byte *pbVar22;
  double dVar23;
  double dVar24;
  double dVar25;
  
  puVar4 = PTR_s_courses_003a88ec;
  pbVar22 = (byte *)*caption;
  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);
  pbVar18 = (byte *)draw_info->text;
  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
  pbVar21 = (byte *)0x0;
LAB_0003c5f4:
  pbVar19 = pbVar22;
  if (pbVar22 == (byte *)0x0) {
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    uVar6 = 0xffffffff;
    *puVar7 = 0x16;
    goto LAB_0003d088;
  }
LAB_0003c5fc:
  uVar10 = (uint)*pbVar19;
  pbVar22 = pbVar19 + 1;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar16 = pbVar22;
  puVar11 = puVar17;
  pbVar13 = pbVar22;
  if ((*pbVar19 & 0x80) != 0) {
    do {
      pbVar13 = pbVar16 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))
      goto LAB_0003cb30;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar16 = pbVar13;
      puVar11 = puVar15;
    } while ((uVar10 & *puVar15) != *puVar1);
  }
  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=
      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {
    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;
    goto LAB_0003cc70;
  }
LAB_0003cb30:
  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
  *puVar7 = 0x58;
  uVar10 = (uint)*pbVar19;
LAB_0003c6ac:
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar16 = pbVar22;
  pbVar14 = pbVar22;
  puVar11 = puVar17;
  pbVar13 = pbVar19;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar14 = pbVar16 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))
      goto LAB_0003cb5c;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar16 = pbVar14;
      puVar11 = puVar15;
    } while ((*puVar15 & uVar10) != *puVar1);
  }
  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];
  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {
LAB_0003cb5c:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    pbVar19 = pbVar21;
LAB_0003cb70:
    if (pbVar13 == (byte *)0x0) {
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      *puVar7 = 0x16;
      goto LAB_0003c8d8;
    }
    uVar10 = (uint)*pbVar13;
    pbVar22 = pbVar13 + 1;
  }
  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&
          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {
    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&
       (pbVar22 = pbVar19, uVar6 != 0x2029)) {
LAB_0003d088:
      pbVar19 = pbVar22;
      pbVar13 = pbVar22;
      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {
        pbVar19 = pbVar22;
      }
    }
    goto LAB_0003cb70;
  }
  iVar12 = 0;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  puVar11 = puVar17;
  pbVar21 = pbVar22;
  if ((uVar10 & 0x80) != 0) {
    do {
      iVar12 = iVar12 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))
      goto LAB_0003cb88;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      puVar11 = puVar15;
      pbVar21 = pbVar21 + 1;
    } while ((uVar10 & *puVar15) != *puVar1);
  }
  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {
LAB_0003cb88:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {
    pbVar18 = (byte *)draw_info->text;
    goto LAB_0003c81c;
  }
LAB_0003c8d8:
  iVar12 = 0;
  pbVar21 = pbVar13;
  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;
  do {
    uVar10 = (uint)*pbVar13;
    pbVar16 = pbVar13 + 1;
    bVar3 = uVar10 < 0x110000;
    uVar6 = uVar10;
    pbVar22 = pbVar16;
    puVar11 = puVar17;
    if ((*pbVar13 & 0x80) != 0) {
      do {
        pbVar16 = pbVar22 + 1;
        puVar15 = puVar11 + 4;
        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))
        goto LAB_0003cb10;
        puVar1 = puVar11 + 5;
        bVar3 = (int)uVar6 < 0x110000;
        pbVar22 = pbVar16;
        puVar11 = puVar15;
      } while ((uVar10 & *puVar15) != *puVar1);
    }
    pbVar16 = pbVar16 + ~(uint)pbVar13;
    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {
LAB_0003cb10:
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      pbVar16 = (byte *)0x1;
      *puVar7 = 0x58;
    }
    else {
      pbVar16 = pbVar16 + 1;
    }
    pbVar22 = pbVar18;
    if ((int)pbVar16 <= iVar12) break;
    while( true ) {
      bVar2 = *pbVar21;
      pbVar18 = pbVar22 + 1;
      pbVar21 = pbVar21 + 1;
      *pbVar22 = bVar2;
      iVar12 = (int)pbVar21 - (int)pbVar13;
      if (pbVar13 != (byte *)0x0) break;
LAB_0003c9a8:
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      *puVar7 = 0x16;
      pbVar22 = pbVar18;
      if (0 < iVar12) goto LAB_0003c9d0;
    }
  } while( true );
LAB_0003c9d0:
  puVar5 = PTR_GetTypeMetrics_003a8eb0;
  *pbVar18 = 0;
  iVar12 = (*(code *)puVar5)(image,draw_info,metrics,exception);
  if (iVar12 == 0) {
LAB_0003cc70:
    iVar12 = 0;
    pbVar21 = (byte *)*caption;
    goto LAB_0003cc80;
  }
  dVar23 = (double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25);
  if (dVar23 < dVar24) {
    if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;
  }
  else if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {
LAB_0003ca38:
    if (pbVar19 != (byte *)0x0) {
      pbVar21 = pbVar19;
      do {
        uVar10 = (uint)*pbVar19;
        bVar3 = uVar10 < 0x110000;
        uVar6 = uVar10;
        pbVar22 = pbVar19 + 1;
        puVar11 = puVar17;
        pbVar18 = pbVar19 + 1;
        if ((*pbVar19 & 0x80) != 0) {
          do {
            pbVar18 = pbVar22 + 1;
            puVar15 = puVar11 + 4;
            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))
            goto LAB_0003cbc0;
            puVar1 = puVar11 + 5;
            bVar3 = (int)uVar6 < 0x110000;
            pbVar22 = pbVar18;
            puVar11 = puVar15;
          } while ((uVar10 & *puVar15) != *puVar1);
        }
        pbVar18 = pbVar18 + ~(uint)pbVar19;
        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {
LAB_0003cbc0:
          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
          *puVar7 = 0x58;
          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;
        }
        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;
        *pbVar21 = 0x20;
        pbVar21 = pbVar21 + 1;
      } while( true );
    }
    if (split == MagickFalse) {
      if (pbVar13 == (byte *)0x0) {
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
        pbVar18 = (byte *)draw_info->text;
        *puVar7 = 0x16;
        goto LAB_0003d0e4;
      }
      uVar10 = (uint)*pbVar13;
      pbVar21 = pbVar13 + 1;
      bVar3 = uVar10 < 0x110000;
      uVar6 = uVar10;
      puVar11 = puVar17;
      if ((*pbVar13 & 0x80) != 0) {
        do {
          puVar15 = puVar11 + 4;
          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))
          goto LAB_0003d050;
          pbVar21 = pbVar21 + 1;
          puVar1 = puVar11 + 5;
          bVar3 = (int)uVar6 < 0x110000;
          puVar11 = puVar15;
        } while ((*puVar15 & uVar10) != *puVar1);
      }
      pbVar21 = pbVar21 + ~(uint)pbVar13;
      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {
LAB_0003d050:
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
        *puVar7 = 0x58;
      }
      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;
    }
    else {
LAB_0003cc44:
      iVar12 = (int)pbVar13 - (int)*caption;
      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {
        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();
        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);
        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);
        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);
        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);
        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);
        (*(code *)PTR_DestroyString_003a9074)(*caption);
        pbVar13 = (byte *)(pcVar8 + iVar12);
        *caption = pcVar8;
      }
    }
LAB_0003cbe8:
    pbVar19 = (byte *)0x0;
    pbVar18 = (byte *)draw_info->text;
  }
  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;
LAB_0003d0e4:
  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
  *puVar7 = 0x16;
  pbVar21 = pbVar19;
  pbVar19 = (byte *)0x1;
  goto LAB_0003c5fc;
LAB_0003cc80:
  bVar3 = pbVar21 == (byte *)0x0;
  pbVar22 = pbVar21;
  pbVar21 = pbVar21 + 1;
  if (bVar3) {
    pbVar21 = (byte *)0x2;
    pbVar22 = (byte *)0x1;
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x16;
  }
  uVar10 = (uint)*pbVar22;
  uVar20 = ~(uint)pbVar22;
  pbVar13 = pbVar22 + 7;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  pbVar18 = pbVar21;
  if ((*pbVar22 & 0x80) != 0) {
    do {
      pbVar18 = pbVar19 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))
      goto LAB_0003ce64;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar19 = pbVar18;
      puVar11 = puVar15;
    } while (*puVar1 != (*puVar15 & uVar10));
  }
  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <
      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {
LAB_0003ce64:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    uVar10 = (uint)*pbVar22;
  }
  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {
    return iVar12;
  }
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  pbVar18 = pbVar21;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar18 = pbVar19 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))
      goto LAB_0003ce80;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar19 = pbVar18;
      puVar11 = puVar15;
    } while (*puVar1 != (uVar10 & *puVar15));
  }
  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <
      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {
LAB_0003ce80:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    uVar10 = (uint)*pbVar22;
  }
  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {
    iVar12 = iVar12 + 1;
  }
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar18 = pbVar21;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar19 = pbVar18 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))
      goto LAB_0003ce9c;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar18 = pbVar19;
      puVar11 = puVar15;
    } while (*puVar1 != (*puVar15 & uVar10));
  }
  pbVar19 = pbVar19 + uVar20;
  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {
LAB_0003ce9c:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else {
    pbVar21 = pbVar22 + (int)(pbVar19 + 1);
  }
  goto LAB_0003cc80;
LAB_0003cbe0:
  *pbVar19 = 10;
  pbVar13 = pbVar19;
  goto LAB_0003cbe8;
code_r0x0003cbfc:
  uVar10 = (uint)*pbVar13;
  pbVar22 = pbVar13 + 1;
LAB_0003c81c:
  iVar12 = 0;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  puVar11 = puVar17;
  pbVar16 = pbVar22;
  pbVar21 = pbVar19;
  if ((uVar10 & 0x80) != 0) {
    do {
      iVar12 = iVar12 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))
      goto LAB_0003cba4;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      puVar11 = puVar15;
      pbVar16 = pbVar16 + 1;
    } while ((*puVar15 & uVar10) != *puVar1);
  }
  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {
LAB_0003cba4:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else {
    pbVar22 = pbVar13 + iVar12 + 1;
  }
  goto LAB_0003c5f4;
}



int FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,
                       undefined4 param_6)

{
  uint *puVar1;
  byte bVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  uint uVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  uint *puVar11;
  int iVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint *puVar15;
  byte *pbVar16;
  uint *puVar17;
  byte *pbVar18;
  byte *pbVar19;
  uint uVar20;
  byte *pbVar21;
  byte *pbVar22;
  double dVar23;
  double dVar24;
  double dVar25;
  
  puVar4 = PTR_s_courses_003a88ec;
  pbVar22 = (byte *)*param_5;
  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);
  pbVar18 = *(byte **)(param_2 + 0x260);
  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
  pbVar21 = (byte *)0x0;
LAB_0003c5f4:
  pbVar19 = pbVar22;
  if (pbVar22 == (byte *)0x0) {
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    uVar6 = 0xffffffff;
    *puVar7 = 0x16;
    goto LAB_0003d088;
  }
LAB_0003c5fc:
  uVar10 = (uint)*pbVar19;
  pbVar22 = pbVar19 + 1;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar16 = pbVar22;
  puVar11 = puVar17;
  pbVar13 = pbVar22;
  if ((*pbVar19 & 0x80) != 0) {
    do {
      pbVar13 = pbVar16 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))
      goto LAB_0003cb30;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar16 = pbVar13;
      puVar11 = puVar15;
    } while ((uVar10 & *puVar15) != *puVar1);
  }
  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=
      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {
    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;
    goto LAB_0003cc70;
  }
LAB_0003cb30:
  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
  *puVar7 = 0x58;
  uVar10 = (uint)*pbVar19;
LAB_0003c6ac:
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar16 = pbVar22;
  pbVar14 = pbVar22;
  puVar11 = puVar17;
  pbVar13 = pbVar19;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar14 = pbVar16 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))
      goto LAB_0003cb5c;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar16 = pbVar14;
      puVar11 = puVar15;
    } while ((*puVar15 & uVar10) != *puVar1);
  }
  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];
  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {
LAB_0003cb5c:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    pbVar19 = pbVar21;
LAB_0003cb70:
    if (pbVar13 == (byte *)0x0) {
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      *puVar7 = 0x16;
      goto LAB_0003c8d8;
    }
    uVar10 = (uint)*pbVar13;
    pbVar22 = pbVar13 + 1;
  }
  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&
          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {
    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&
       (pbVar22 = pbVar19, uVar6 != 0x2029)) {
LAB_0003d088:
      pbVar19 = pbVar22;
      pbVar13 = pbVar22;
      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {
        pbVar19 = pbVar22;
      }
    }
    goto LAB_0003cb70;
  }
  iVar12 = 0;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  puVar11 = puVar17;
  pbVar21 = pbVar22;
  if ((uVar10 & 0x80) != 0) {
    do {
      iVar12 = iVar12 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))
      goto LAB_0003cb88;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      puVar11 = puVar15;
      pbVar21 = pbVar21 + 1;
    } while ((uVar10 & *puVar15) != *puVar1);
  }
  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {
LAB_0003cb88:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {
    pbVar18 = *(byte **)(param_2 + 0x260);
    goto LAB_0003c81c;
  }
LAB_0003c8d8:
  iVar12 = 0;
  pbVar21 = pbVar13;
  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;
  do {
    uVar10 = (uint)*pbVar13;
    pbVar16 = pbVar13 + 1;
    bVar3 = uVar10 < 0x110000;
    uVar6 = uVar10;
    pbVar22 = pbVar16;
    puVar11 = puVar17;
    if ((*pbVar13 & 0x80) != 0) {
      do {
        pbVar16 = pbVar22 + 1;
        puVar15 = puVar11 + 4;
        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))
        goto LAB_0003cb10;
        puVar1 = puVar11 + 5;
        bVar3 = (int)uVar6 < 0x110000;
        pbVar22 = pbVar16;
        puVar11 = puVar15;
      } while ((uVar10 & *puVar15) != *puVar1);
    }
    pbVar16 = pbVar16 + ~(uint)pbVar13;
    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {
LAB_0003cb10:
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      pbVar16 = (byte *)0x1;
      *puVar7 = 0x58;
    }
    else {
      pbVar16 = pbVar16 + 1;
    }
    pbVar22 = pbVar18;
    if ((int)pbVar16 <= iVar12) break;
    while( true ) {
      bVar2 = *pbVar21;
      pbVar18 = pbVar22 + 1;
      pbVar21 = pbVar21 + 1;
      *pbVar22 = bVar2;
      iVar12 = (int)pbVar21 - (int)pbVar13;
      if (pbVar13 != (byte *)0x0) break;
LAB_0003c9a8:
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      *puVar7 = 0x16;
      pbVar22 = pbVar18;
      if (0 < iVar12) goto LAB_0003c9d0;
    }
  } while( true );
LAB_0003c9d0:
  puVar5 = PTR_GetTypeMetrics_003a8eb0;
  *pbVar18 = 0;
  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);
  if (iVar12 == 0) {
LAB_0003cc70:
    iVar12 = 0;
    pbVar21 = (byte *)*param_5;
    goto LAB_0003cc80;
  }
  dVar23 = (double)(*(code *)PTR_floor_003a9670)
                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);
  if (dVar23 < dVar24) {
    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;
  }
  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {
LAB_0003ca38:
    if (pbVar19 != (byte *)0x0) {
      pbVar21 = pbVar19;
      do {
        uVar10 = (uint)*pbVar19;
        bVar3 = uVar10 < 0x110000;
        uVar6 = uVar10;
        pbVar22 = pbVar19 + 1;
        puVar11 = puVar17;
        pbVar18 = pbVar19 + 1;
        if ((*pbVar19 & 0x80) != 0) {
          do {
            pbVar18 = pbVar22 + 1;
            puVar15 = puVar11 + 4;
            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))
            goto LAB_0003cbc0;
            puVar1 = puVar11 + 5;
            bVar3 = (int)uVar6 < 0x110000;
            pbVar22 = pbVar18;
            puVar11 = puVar15;
          } while ((uVar10 & *puVar15) != *puVar1);
        }
        pbVar18 = pbVar18 + ~(uint)pbVar19;
        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {
LAB_0003cbc0:
          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
          *puVar7 = 0x58;
          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;
        }
        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;
        *pbVar21 = 0x20;
        pbVar21 = pbVar21 + 1;
      } while( true );
    }
    if (param_3 == 0) {
      if (pbVar13 == (byte *)0x0) {
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
        pbVar18 = *(byte **)(param_2 + 0x260);
        *puVar7 = 0x16;
        goto LAB_0003d0e4;
      }
      uVar10 = (uint)*pbVar13;
      pbVar21 = pbVar13 + 1;
      bVar3 = uVar10 < 0x110000;
      uVar6 = uVar10;
      puVar11 = puVar17;
      if ((*pbVar13 & 0x80) != 0) {
        do {
          puVar15 = puVar11 + 4;
          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))
          goto LAB_0003d050;
          pbVar21 = pbVar21 + 1;
          puVar1 = puVar11 + 5;
          bVar3 = (int)uVar6 < 0x110000;
          puVar11 = puVar15;
        } while ((*puVar15 & uVar10) != *puVar1);
      }
      pbVar21 = pbVar21 + ~(uint)pbVar13;
      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {
LAB_0003d050:
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
        *puVar7 = 0x58;
      }
      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;
    }
    else {
LAB_0003cc44:
      iVar12 = (int)pbVar13 - *param_5;
      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {
        iVar8 = (*(code *)PTR_AcquireString_003a9814)();
        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);
        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);
        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);
        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);
        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);
        (*(code *)PTR_DestroyString_003a9074)(*param_5);
        pbVar13 = (byte *)(iVar8 + iVar12);
        *param_5 = iVar8;
      }
    }
LAB_0003cbe8:
    pbVar19 = (byte *)0x0;
    pbVar18 = *(byte **)(param_2 + 0x260);
  }
  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;
LAB_0003d0e4:
  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
  *puVar7 = 0x16;
  pbVar21 = pbVar19;
  pbVar19 = (byte *)0x1;
  goto LAB_0003c5fc;
LAB_0003cc80:
  bVar3 = pbVar21 == (byte *)0x0;
  pbVar22 = pbVar21;
  pbVar21 = pbVar21 + 1;
  if (bVar3) {
    pbVar21 = (byte *)0x2;
    pbVar22 = (byte *)0x1;
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x16;
  }
  uVar10 = (uint)*pbVar22;
  uVar20 = ~(uint)pbVar22;
  pbVar13 = pbVar22 + 7;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  pbVar18 = pbVar21;
  if ((*pbVar22 & 0x80) != 0) {
    do {
      pbVar18 = pbVar19 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))
      goto LAB_0003ce64;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar19 = pbVar18;
      puVar11 = puVar15;
    } while (*puVar1 != (*puVar15 & uVar10));
  }
  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <
      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {
LAB_0003ce64:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    uVar10 = (uint)*pbVar22;
  }
  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {
    return iVar12;
  }
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  pbVar18 = pbVar21;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar18 = pbVar19 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))
      goto LAB_0003ce80;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar19 = pbVar18;
      puVar11 = puVar15;
    } while (*puVar1 != (uVar10 & *puVar15));
  }
  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <
      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {
LAB_0003ce80:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    uVar10 = (uint)*pbVar22;
  }
  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {
    iVar12 = iVar12 + 1;
  }
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar18 = pbVar21;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar19 = pbVar18 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))
      goto LAB_0003ce9c;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar18 = pbVar19;
      puVar11 = puVar15;
    } while (*puVar1 != (*puVar15 & uVar10));
  }
  pbVar19 = pbVar19 + uVar20;
  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {
LAB_0003ce9c:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else {
    pbVar21 = pbVar22 + (int)(pbVar19 + 1);
  }
  goto LAB_0003cc80;
LAB_0003cbe0:
  *pbVar19 = 10;
  pbVar13 = pbVar19;
  goto LAB_0003cbe8;
code_r0x0003cbfc:
  uVar10 = (uint)*pbVar13;
  pbVar22 = pbVar13 + 1;
LAB_0003c81c:
  iVar12 = 0;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  puVar11 = puVar17;
  pbVar16 = pbVar22;
  pbVar21 = pbVar19;
  if ((uVar10 & 0x80) != 0) {
    do {
      iVar12 = iVar12 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))
      goto LAB_0003cba4;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      puVar11 = puVar15;
      pbVar16 = pbVar16 + 1;
    } while ((*puVar15 & uVar10) != *puVar1);
  }
  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {
LAB_0003cba4:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else {
    pbVar22 = pbVar13 + iVar12 + 1;
  }
  goto LAB_0003c5f4;
}


lui gp,0x37
addiu gp,gp,0x4340
addu gp,gp,t9
addiu sp,sp,-0x60
sdc1 f22,0x58(sp)
lw v0,0x70(sp)
sw s7,0x44(sp)
sdc1 f20,0x50(sp)
sw s0,0x28(sp)
lw s7,0x0(v0)
lw v0,-0x7fd0(gp)
lw s0,-0x7fd0(gp)
sw s1,0x2c(sp)
ldc1 f22,0x1400(v0)
lw v0,-0x7fc4(gp)
addiu s0,s0,0x1390
lw s1,0x260(a1)
sw s2,0x30(sp)
or s2,zero,zero
sw v0,0x24(sp)
lw v0,-0x7fd0(gp)
sw gp,0x10(sp)
sw ra,0x4c(sp)
ldc1 f20,0x1410(v0)
sw s8,0x48(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw a1,0x64(sp)
sw a0,0x60(sp)
sw a2,0x68(sp)
sw a3,0x6c(sp)
beq s7,zero,0x0003d06c
_lw t9,-0x6f00(gp)
lbu v1,0x0(s7)
addiu s3,s7,0x1
li a0,0x80
lui t3,0x11
or t5,zero,zero
or v0,v1,zero
or a3,s3,zero
nor a1,zero,s7
and a0,v1,a0
addiu a2,s7,0x7
or s8,s0,zero
or t1,s0,zero
sll t2,v0,0x6
slt t4,v0,t3
beq a0,t5,0x0003c684
_addu t6,a3,a1
addiu a3,a3,0x1
lb v0,-0x1(a3)
addiu t1,t1,0x10
xori v0,v0,0x80
andi a0,v0,0xc0
bne a0,zero,0x0003cb2c
_andi v0,v0,0xff
beq t4,zero,0x0003cb30
_lw t9,-0x6f00(gp)
beq a2,a3,0x0003cb30
_or v0,v0,t2
lw a0,0x0(t1)
sll t2,v0,0x6
lw t5,0x4(t1)
slt t4,v0,t3
and a0,v1,a0
bne a0,t5,0x0003c63c
_addu t6,a3,a1
sll a0,t6,0x4
addu a0,s0,a0
lw a3,0x8(a0)
lw a0,0xc(a0)
and v0,v0,a3
slt a0,v0,a0
bne a0,zero,0x0003cb30
_lw t9,-0x6f00(gp)
beq v0,zero,0x0003cc70
_lw v0,0x70(sp)
li a0,0x80
lui t3,0x11
or t1,zero,zero
or v0,v1,zero
or a3,s3,zero
and a0,a0,v1
sll t2,v0,0x6
slt t4,v0,t3
beq a0,t1,0x0003c71c
_addu t5,a3,a1
addiu a3,a3,0x1
lb v0,-0x1(a3)
addiu s8,s8,0x10
xori v0,v0,0x80
andi a0,v0,0xc0
bne a0,zero,0x0003cb58
_andi v0,v0,0xff
beq t4,zero,0x0003cb5c
_lw t9,-0x6f00(gp)
beq a2,a3,0x0003cb5c
_or v0,v0,t2
lw a0,0x0(s8)
sll t2,v0,0x6
lw t1,0x4(s8)
slt t4,v0,t3
and a0,a0,v1
bne a0,t1,0x0003c6d4
_addu t5,a3,a1
sll a0,t5,0x4
addu a0,s0,a0
lw a2,0x8(a0)
lw a1,0xc(a0)
and a0,v0,a2
slt v0,a0,a1
bne v0,zero,0x0003cb58
_addiu v0,a0,-0x9
sltiu v0,v0,0x5
bne v0,zero,0x0003c768
_li v0,-0x81
li a1,0x20
and v0,a0,v0
beq v0,a1,0x0003c768
_li v0,0x85
beq a0,v0,0x0003c768
_li v0,0x1680
bne a0,v0,0x0003d0fc
_li v0,0x180e
or s2,s7,zero
li a0,0x80
lui t3,0x11
or t1,zero,zero
or v0,v1,zero
or a3,s3,zero
and a0,v1,a0
or a2,zero,zero
li t4,0x6
or a1,s0,zero
addiu a3,a3,0x1
sll t2,v0,0x6
beq a0,t1,0x0003c7e8
_slt t5,v0,t3
lb v0,-0x1(a3)
addiu a2,a2,0x1
addiu a1,a1,0x10
xori v0,v0,0x80
andi a0,v0,0xc0
bne a0,zero,0x0003cb84
_andi v0,v0,0xff
beq t5,zero,0x0003cb88
_lw t9,-0x6f00(gp)
beq a2,t4,0x0003cb88
_or v0,v0,t2
lw a0,0x0(a1)
addiu a3,a3,0x1
lw t1,0x4(a1)
sll t2,v0,0x6
and a0,v1,a0
bne a0,t1,0x0003c7a0
_slt t5,v0,t3
sll a0,a2,0x4
addu a0,s0,a0
lw a1,0x8(a0)
lw a0,0xc(a0)
and v0,v0,a1
slt a0,v0,a0
bne a0,zero,0x0003cb84
_li a0,0xa
bne v0,a0,0x0003c8d4
_lw v0,0x64(sp)
or a3,s7,zero
or s7,s3,zero
lw s1,0x260(v0)
li a0,0x80
lui t4,0x11
or t2,zero,zero
or v0,v1,zero
or a2,s7,zero
and a0,a0,v1
or t1,zero,zero
li t5,0x6
or a1,s0,zero
addiu a2,a2,0x1
sll t3,v0,0x6
beq a0,t2,0x0003c898
_slt t6,v0,t4
lb v0,-0x1(a2)
addiu t1,t1,0x1
addiu a1,a1,0x10
xori v0,v0,0x80
andi a0,v0,0xc0
bne a0,zero,0x0003cba0
_andi v0,v0,0xff
beq t6,zero,0x0003cba4
_lw t9,-0x6f00(gp)
beq t1,t5,0x0003cba4
_or v0,v0,t3
lw a0,0x0(a1)
addiu a2,a2,0x1
lw t2,0x4(a1)
sll t3,v0,0x6
and a0,a0,v1
bne a0,t2,0x0003c850
_slt t6,v0,t4
sll v1,t1,0x4
addu v1,s0,v1
lw a0,0x8(v1)
lw v1,0xc(v1)
and v0,v0,a0
slt v0,v0,v1
bne v0,zero,0x0003cba0
_addiu t0,t1,0x1
b 0x0003c5f4
_addu s7,a3,t0
jalr t9
_nop
li v1,0x16
lw gp,0x10(sp)
sw v1,0x0(v0)
or s4,s7,zero
addiu s6,s7,0x7
nor s5,zero,s7
lui s8,0x11
beq s7,zero,0x0003c9a8
_subu s3,s4,s7
lbu t5,0x0(s7)
li v1,0x80
addiu t2,s7,0x1
or t7,zero,zero
or v0,t5,zero
and v1,t5,v1
or t3,s0,zero
sll t4,v0,0x6
slt t6,v0,s8
beq v1,t7,0x0003c960
_addu t8,t2,s5
addiu t2,t2,0x1
lb v0,-0x1(t2)
addiu t3,t3,0x10
xori v0,v0,0x80
andi v1,v0,0xc0
bne v1,zero,0x0003cb0c
_andi v0,v0,0xff
beq t6,zero,0x0003cb10
_lw t9,-0x6f00(gp)
beq t2,s6,0x0003cb10
_or v0,v0,t4
lw v1,0x0(t3)
sll t4,v0,0x6
lw t7,0x4(t3)
slt t6,v0,s8
and v1,t5,v1
bne v1,t7,0x0003c918
_addu t8,t2,s5
sll v1,t8,0x4
addu v1,s0,v1
lw t2,0x8(v1)
lw v1,0xc(v1)
and v0,v0,t2
slt v0,v0,v1
bne v0,zero,0x0003cb10
_lw t9,-0x6f00(gp)
addiu v1,t8,0x1
slt a0,s3,v1
beq a0,zero,0x0003c9d0
_lw t9,-0x7a00(gp)
lb v0,0x0(s4)
addiu s1,s1,0x1
addiu s4,s4,0x1
sb v0,-0x1(s1)
bne s7,zero,0x0003c8ec
_subu s3,s4,s7
lw t9,-0x6f00(gp)
jalr t9
_nop
li a0,0x16
li v1,0x1
lw gp,0x10(sp)
sw a0,0x0(v0)
slt a0,s3,v1
bne a0,zero,0x0003c990
_lw t9,-0x7a00(gp)
lw a3,0x74(sp)
lw a2,0x6c(sp)
lw a1,0x64(sp)
lw a0,0x60(sp)
jalr t9
_sb zero,0x0(s1)
beq v0,zero,0x0003cc6c
_lw gp,0x10(sp)
lw v0,0x6c(sp)
lw t9,-0x7240(gp)
ldc1 f12,0x20(v0)
lw v0,0x64(sp)
ldc1 f0,0x1b0(v0)
add.D f12,f12,f0
jalr t9
_add.D f12,f12,f22
c.le.D f20,f0
bc1t 0x0003cc08
_lw gp,0x10(sp)
trunc.w.D f0,f0
lw v1,0x60(sp)
lw v1,0x18(v1)
mfc1 v0,f0
sltu v0,v1,v0
beq v0,zero,0x0003cbf4
_or a3,s7,zero
beq s2,zero,0x0003cc38
_addiu v0,s2,0x1
addiu s3,s2,0x7
lui s7,0x11
sw v0,0x1c(sp)
li s6,0x58
li s5,0x20
or s1,s2,zero
nor s8,zero,s2
lbu t5,0x0(s2)
li v1,0x80
lw a0,0x1c(sp)
or t3,zero,zero
subu s4,s1,s2
or v0,t5,zero
and v1,t5,v1
or t2,s0,zero
sll t4,v0,0x6
slt t6,v0,s7
beq v1,t3,0x0003cad4
_addu t7,a0,s8
addiu a0,a0,0x1
lb v0,-0x1(a0)
addiu t2,t2,0x10
xori v0,v0,0x80
andi v1,v0,0xc0
bne v1,zero,0x0003cbbc
_andi v0,v0,0xff
beq t6,zero,0x0003cbc0
_lw t9,-0x6f00(gp)
beq s3,a0,0x0003cbc0
_or v0,v0,t4
lw v1,0x0(t2)
sll t4,v0,0x6
lw t3,0x4(t2)
slt t6,v0,s7
and v1,t5,v1
bne v1,t3,0x0003ca8c
_addu t7,a0,s8
sll v1,t7,0x4
addu v1,s0,v1
lw a0,0x8(v1)
lw v1,0xc(v1)
and v0,v0,a0
slt v0,v0,v1
bne v0,zero,0x0003cbbc
_addiu v1,t7,0x1
slt v1,s4,v1
beq v1,zero,0x0003cbe0
_li v0,0xa
sb s5,0x0(s1)
b 0x0003ca5c
_addiu s1,s1,0x1
lw t9,-0x6f00(gp)
jalr t9
_nop
li a0,0x58
lw gp,0x10(sp)
li v1,0x1
b 0x0003c984
_sw a0,0x0(v0)
lw t9,-0x6f00(gp)
sw a1,0x20(sp)
jalr t9
_sw a2,0x1c(sp)
li v1,0x58
lw gp,0x10(sp)
lw a2,0x1c(sp)
lw a1,0x20(sp)
sw v1,0x0(v0)
b 0x0003c6ac
_lbu v1,0x0(s7)
lw t9,-0x6f00(gp)
jalr t9
_nop
li v1,0x58
lw gp,0x10(sp)
sw v1,0x0(v0)
beq s7,zero,0x0003c8c0
_lw t9,-0x6f00(gp)
lbu v1,0x0(s7)
b 0x0003c76c
_addiu s3,s7,0x1
lw t9,-0x6f00(gp)
jalr t9
_or s4,s7,zero
li v1,0x58
lw gp,0x10(sp)
b 0x0003c8d8
_sw v1,0x0(v0)
lw t9,-0x6f00(gp)
jalr t9
_nop
li v1,0x58
lw gp,0x10(sp)
b 0x0003c5f4
_sw v1,0x0(v0)
lw t9,-0x6f00(gp)
jalr t9
_nop
li v1,0x1
lw gp,0x10(sp)
slt v1,s4,v1
bne v1,zero,0x0003cb00
_sw s6,0x0(v0)
li v0,0xa
or a3,s2,zero
sb v0,0x0(s2)
lw v0,0x64(sp)
or s2,zero,zero
lw s1,0x260(v0)
beq a3,zero,0x0003d0e4
_lw t9,-0x6f00(gp)
lbu v1,0x0(a3)
b 0x0003c81c
_addiu s7,a3,0x1
sub.D D f0,f0,f20
lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
or v0,v0,v1
lw v1,0x60(sp)
lw v1,0x18(v1)
sltu v0,v1,v0
bne v0,zero,0x0003ca38
_or a3,s7,zero
b 0x0003cbf4
_nop
lw v0,0x68(sp)
beq v0,zero,0x0003cf94
_lw v0,0x70(sp)
lw a0,0x0(v0)
subu s1,s7,a0
blez s1,0x0003cc64
_addu v0,a0,s1
li v1,0xa
lb v0,-0x1(v0)
bne v0,v1,0x0003cee8
_lw t9,-0x709c(gp)
b 0x0003cbe8
_or a3,s7,zero
lw v0,0x70(sp)
or s2,zero,zero
lui s6,0x11
li s1,0x58
lw s7,0x0(v0)
beq s7,zero,0x0003d0a0
_addiu s8,s7,0x1
lbu a1,0x0(s7)
li a3,0x80
or t1,zero,zero
or a2,s8,zero
or v0,a1,zero
nor s3,zero,s7
and a3,a3,a1
addiu s4,s7,0x7
or s5,s0,zero
or t0,s0,zero
sll t3,v0,0x6
slt t2,v0,s6
beq t1,a3,0x0003cd08
_addu t4,a2,s3
addiu a2,a2,0x1
lb v0,-0x1(a2)
addiu t0,t0,0x10
xori v0,v0,0x80
andi a3,v0,0xc0
bne a3,zero,0x0003ce60
_andi v0,v0,0xff
beq t2,zero,0x0003ce64
_lw t9,-0x6f00(gp)
beq s4,a2,0x0003ce64
_or v0,v0,t3
lw a3,0x0(t0)
sll t3,v0,0x6
lw t1,0x4(t0)
slt t2,v0,s6
and a3,a3,a1
bne t1,a3,0x0003ccc0
_addu t4,a2,s3
sll a2,t4,0x4
addu a2,s0,a2
lw a3,0x8(a2)
lw a2,0xc(a2)
and v0,v0,a3
slt a2,v0,a2
bne a2,zero,0x0003ce64
_lw t9,-0x6f00(gp)
beq v0,zero,0x0003ceb0
_lw ra,0x4c(sp)
li a3,0x80
or t1,zero,zero
or v0,a1,zero
or a2,s8,zero
and a3,a1,a3
or t0,s0,zero
sll t3,v0,0x6
slt t2,v0,s6
beq t1,a3,0x0003cda0
_addu t4,a2,s3
addiu a2,a2,0x1
lb v0,-0x1(a2)
addiu t0,t0,0x10
xori v0,v0,0x80
andi a3,v0,0xc0
bne a3,zero,0x0003ce7c
_andi v0,v0,0xff
beq t2,zero,0x0003ce80
_lw t9,-0x6f00(gp)
beq s4,a2,0x0003ce80
_or v0,v0,t3
lw a3,0x0(t0)
sll t3,v0,0x6
lw t1,0x4(t0)
slt t2,v0,s6
and a3,a1,a3
bne t1,a3,0x0003cd58
_addu t4,a2,s3
sll a2,t4,0x4
addu a2,s0,a2
lw a3,0x8(a2)
lw a2,0xc(a2)
and v0,v0,a3
slt a2,v0,a2
bne a2,zero,0x0003ce7c
_li v1,0xa
bne v0,v1,0x0003cdd0
_li a3,0x80
addiu s2,s2,0x1
li a3,0x80
or t0,zero,zero
or v0,a1,zero
or a2,s8,zero
and a3,a3,a1
sll t2,v0,0x6
slt t1,v0,s6
beq t0,a3,0x0003ce38
_addu t3,a2,s3
addiu a2,a2,0x1
lb v0,-0x1(a2)
addiu s5,s5,0x10
xori v0,v0,0x80
andi a3,v0,0xc0
bne a3,zero,0x0003ce98
_andi v0,v0,0xff
beq t1,zero,0x0003ce9c
_lw t9,-0x6f00(gp)
beq s4,a2,0x0003ce9c
_or v0,v0,t2
lw a3,0x0(s5)
sll t2,v0,0x6
lw t0,0x4(s5)
slt t1,v0,s6
and a3,a3,a1
bne t0,a3,0x0003cdf0
_addu t3,a2,s3
sll v1,t3,0x4
addu v1,s0,v1
lw a0,0x8(v1)
lw v1,0xc(v1)
and v0,v0,a0
slt v0,v0,v1
bne v0,zero,0x0003ce98
_addiu t3,t3,0x1
b 0x0003cc80
_addu s7,s7,t3
lw t9,-0x6f00(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw s1,0x0(v0)
b 0x0003cd30
_lbu a1,0x0(s7)
lw t9,-0x6f00(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw s1,0x0(v0)
b 0x0003cdcc
_lbu a1,0x0(s7)
lw t9,-0x6f00(gp)
jalr t9
_or s7,s8,zero
lw gp,0x10(sp)
b 0x0003cc80
_sw s1,0x0(v0)
or v0,s2,zero
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
ldc1 f22,0x58(sp)
ldc1 f20,0x50(sp)
jr ra
_addiu sp,sp,0x60
jalr t9
_nop
addiu a2,s1,0x1
lw v1,0x70(sp)
or a0,v0,zero
lw gp,0x10(sp)
or s2,v0,zero
lw t9,-0x7074(gp)
jalr t9
_lw a1,0x0(v1)
lw gp,0x10(sp)
lw v0,0x70(sp)
lw t9,-0x7578(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s2,zero
lw gp,0x10(sp)
addiu a2,v0,0x1
lw v1,0x24(sp)
lw t9,-0x7018(gp)
jalr t9
_addiu a1,v1,-0x4bdc
lw gp,0x10(sp)
lw v0,0x70(sp)
lw t9,-0x7578(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s2,zero
lw gp,0x10(sp)
addiu a2,v0,0x2
lw t9,-0x7018(gp)
jalr t9
_or a1,s7,zero
lw gp,0x10(sp)
lw v0,0x70(sp)
lw t9,-0x783c(gp)
jalr t9
_lw a0,0x0(v0)
addu a3,s2,s1
lw v0,0x70(sp)
lw gp,0x10(sp)
b 0x0003cbe8
_sw s2,0x0(v0)
beq s7,zero,0x0003d0c0
_li a0,0x80
lbu t1,0x0(s7)
addiu v1,s7,0x1
lui t2,0x11
or t5,zero,zero
or v0,t1,zero
nor a1,zero,s7
and a0,a0,t1
addiu t3,s7,0x6
or a2,s0,zero
sll a3,v0,0x6
slt t4,v0,t2
beq a0,t5,0x0003d018
_addu t6,v1,a1
lb v0,0x0(v1)
addiu a2,a2,0x10
xori v0,v0,0x80
andi a0,v0,0xc0
bne a0,zero,0x0003d04c
_andi v0,v0,0xff
beq t4,zero,0x0003d050
_lw t9,-0x6f00(gp)
beq t3,v1,0x0003d050
_or v0,v0,a3
lw a0,0x0(a2)
addiu v1,v1,0x1
lw t5,0x4(a2)
sll a3,v0,0x6
slt t4,v0,t2
and a0,a0,t1
bne a0,t5,0x0003cfd0
_addu t6,v1,a1
sll v1,t6,0x4
addu v1,s0,v1
lw a0,0x8(v1)
lw v1,0xc(v1)
and v0,v0,a0
slt v0,v0,v1
bne v0,zero,0x0003d04c
_addiu v0,t6,0x1
sltiu v0,v0,0x3
beq v0,zero,0x0003cc44
_lw v0,0x70(sp)
b 0x0003cbe8
_or a3,s7,zero
lw t9,-0x6f00(gp)
jalr t9
_nop
li v1,0x58
lw gp,0x10(sp)
or a3,s7,zero
b 0x0003cbe8
_sw v1,0x0(v0)
jalr t9
_nop
li v1,0x16
li a0,-0x1
lw gp,0x10(sp)
sw v1,0x0(v0)
li v0,0x202f
beq a0,v0,0x0003d120
_li v0,0x205f
beq a0,v0,0x0003d120
_xori v0,a0,0x3000
b 0x0003cb70
_movz s2,s7,v0
lw t9,-0x6f00(gp)
li s8,0x2
jalr t9
_li s7,0x1
li v1,0x16
lw gp,0x10(sp)
b 0x0003cc88
_sw v1,0x0(v0)
lw t9,-0x6f00(gp)
jalr t9
_nop
lw v1,0x64(sp)
lw gp,0x10(sp)
lw s1,0x260(v1)
li v1,0x16
sw v1,0x0(v0)
lw t9,-0x6f00(gp)
jalr t9
_li s7,0x1
li v1,0x16
lw gp,0x10(sp)
b 0x0003c5fc
_sw v1,0x0(v0)
beq a0,v0,0x0003d120
_addiu v0,a0,-0x2000
sltiu v0,v0,0xb
bne v0,zero,0x0003d120
_li v0,0x2028
beq a0,v0,0x0003d120
_li v0,0x2029
bne a0,v0,0x0003d088
_li v0,0x202f
b 0x0003cb70
_or s2,s7,zero
(translation_unit "int FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}\n\n" (function_definition "int FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" primitive_type (function_declarator "FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "double dVar23;" primitive_type identifier ;) (declaration "double dVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)*param_5;" (assignment_expression "pbVar22 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);" (assignment_expression "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390)" identifier = (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1390)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1390)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1390" identifier + number_literal) )))) ;) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) (expression_statement "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "pbVar21 = (byte *)0x0;" (assignment_expression "pbVar21 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0003c5f4:\n  pbVar19 = pbVar22;" statement_identifier : (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;)) (if_statement "if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" if (parenthesized_expression "(pbVar22 == (byte *)0x0)" ( (binary_expression "pbVar22 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003d088;" goto statement_identifier ;) })) (labeled_statement "LAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;" statement_identifier : (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" identifier = identifier) ;) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" if (parenthesized_expression "((*pbVar19 & 0x80) != 0)" ( (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" ( (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" { (do_statement "do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar13 = pbVar16 + 1;" (assignment_expression "pbVar13 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar13" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cb30;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" if (parenthesized_expression "((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]))" ( (binary_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (cast_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) <= (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) )))) )) (compound_statement "{\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" { (if_statement "if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) )) != number_literal) )) (goto_statement "goto LAB_0003c6ac;" goto statement_identifier ;)) (goto_statement "goto LAB_0003cc70;" goto statement_identifier ;) })) (labeled_statement "LAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (labeled_statement "LAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;" statement_identifier : (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;)) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar22;" (assignment_expression "pbVar14 = pbVar22" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" { (do_statement "do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar14 = pbVar16 + 1;" (assignment_expression "pbVar14 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar14" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cb5c;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar16 = pbVar14;" (assignment_expression "pbVar16 = pbVar14" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];" (assignment_expression "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier = (binary_expression "uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" ( (binary_expression "pbVar14 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ]))) ;) (if_statement "if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" if (parenthesized_expression "((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3])" ( (binary_expression "(int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" ( (binary_expression "pbVar14 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }" { (labeled_statement "LAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (labeled_statement "LAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" statement_identifier : (if_statement "if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003c8d8;" goto statement_identifier ;) }))) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) (else_clause "else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" else (if_statement "if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" if (parenthesized_expression "(((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680))))" ( (binary_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))" (parenthesized_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20))" ( (binary_expression "(4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)" (parenthesized_expression "(4 < uVar6 - 9)" ( (binary_expression "4 < uVar6 - 9" number_literal < (binary_expression "uVar6 - 9" identifier - number_literal)) )) && (parenthesized_expression "((uVar6 & 0xffffff7f) != 0x20)" ( (binary_expression "(uVar6 & 0xffffff7f) != 0x20" (parenthesized_expression "(uVar6 & 0xffffff7f)" ( (binary_expression "uVar6 & 0xffffff7f" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((uVar6 != 0x85 && (uVar6 != 0x1680)))" ( (parenthesized_expression "(uVar6 != 0x85 && (uVar6 != 0x1680))" ( (binary_expression "uVar6 != 0x85 && (uVar6 != 0x1680)" (binary_expression "uVar6 != 0x85" identifier != number_literal) && (parenthesized_expression "(uVar6 != 0x1680)" ( (binary_expression "uVar6 != 0x1680" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" { (if_statement "if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" if (parenthesized_expression "((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029))" ( (binary_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)" (parenthesized_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028))" ( (binary_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)" (parenthesized_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000))" ( (binary_expression "(uVar6 != 0x180e) && (10 < uVar6 - 0x2000)" (parenthesized_expression "(uVar6 != 0x180e)" ( (binary_expression "uVar6 != 0x180e" identifier != number_literal) )) && (parenthesized_expression "(10 < uVar6 - 0x2000)" ( (binary_expression "10 < uVar6 - 0x2000" number_literal < (binary_expression "uVar6 - 0x2000" identifier - number_literal)) ))) )) && (parenthesized_expression "(uVar6 != 0x2028)" ( (binary_expression "uVar6 != 0x2028" identifier != number_literal) ))) )) && (parenthesized_expression "(pbVar22 = pbVar19, uVar6 != 0x2029)" ( (comma_expression "pbVar22 = pbVar19, uVar6 != 0x2029" (assignment_expression "pbVar22 = pbVar19" identifier = identifier) , (binary_expression "uVar6 != 0x2029" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" { (labeled_statement "LAB_0003d088:\n      pbVar19 = pbVar22;" statement_identifier : (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;)) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" identifier = identifier) ;) (if_statement "if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }" if (parenthesized_expression "(((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000))" ( (binary_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)" (parenthesized_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f))" ( (binary_expression "(uVar6 != 0x202f) && (uVar6 != 0x205f)" (parenthesized_expression "(uVar6 != 0x202f)" ( (binary_expression "uVar6 != 0x202f" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0x205f)" ( (binary_expression "uVar6 != 0x205f" identifier != number_literal) ))) )) && (parenthesized_expression "(pbVar19 = pbVar21, uVar6 == 0x3000)" ( (comma_expression "pbVar19 = pbVar21, uVar6 == 0x3000" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) , (binary_expression "uVar6 == 0x3000" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar19 = pbVar22;\n      }" { (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;) })) })) (goto_statement "goto LAB_0003cb70;" goto statement_identifier ;) })))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar22;" (assignment_expression "pbVar21 = pbVar22" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" { (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;" if (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" ( (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" ( (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "iVar12 == 6" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0003cb88;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[iVar12 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[iVar12 * 4 + 3]" identifier [ (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" else (if_statement "if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" if (parenthesized_expression "((uVar6 & puVar17[iVar12 * 4 + 2]) == 10)" ( (binary_expression "(uVar6 & puVar17[iVar12 * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" { (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c81c;" goto statement_identifier ;) })))) (labeled_statement "LAB_0003c8d8:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "pbVar21 = pbVar13;" (assignment_expression "pbVar21 = pbVar13" identifier = identifier) ;) (if_statement "if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c9a8;" goto statement_identifier ;)) (do_statement "do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );" do (compound_statement "{\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  }" { (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar16 = pbVar13 + 1;" (assignment_expression "pbVar16 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" if (parenthesized_expression "((*pbVar13 & 0x80) != 0)" ( (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" ( (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" { (do_statement "do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      }" { (expression_statement "pbVar16 = pbVar22 + 1;" (assignment_expression "pbVar16 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;" if (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))" ( (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" ( (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar16 == pbVar13 + 7" identifier == (binary_expression "pbVar13 + 7" identifier + number_literal))) ))) )) (goto_statement "goto LAB_0003cb10;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar16 = pbVar16 + ~(uint)pbVar13;" (assignment_expression "pbVar16 = pbVar16 + ~(uint)pbVar13" identifier = (binary_expression "pbVar16 + ~(uint)pbVar13" identifier + (unary_expression "~(uint)pbVar13" ~ (cast_expression "(uint)pbVar13" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar16 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar16 * 4 + 2]" identifier [ (binary_expression "(int)pbVar16 * 4 + 2" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar16 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar16 * 4 + 3]" identifier [ (binary_expression "(int)pbVar16 * 4 + 3" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }" { (labeled_statement "LAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar16 = (byte *)0x1;" (assignment_expression "pbVar16 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" else (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (if_statement "if ((int)pbVar16 <= iVar12) break;" if (parenthesized_expression "((int)pbVar16 <= iVar12)" ( (binary_expression "(int)pbVar16 <= iVar12" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" { (expression_statement "bVar2 = *pbVar21;" (assignment_expression "bVar2 = *pbVar21" identifier = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar22 = bVar2;" (assignment_expression "*pbVar22 = bVar2" (pointer_expression "*pbVar22" * identifier) = identifier) ;) (expression_statement "iVar12 = (int)pbVar21 - (int)pbVar13;" (assignment_expression "iVar12 = (int)pbVar21 - (int)pbVar13" identifier = (binary_expression "(int)pbVar21 - (int)pbVar13" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar13 != (byte *)0x0) break;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (if_statement "if (0 < iVar12) goto LAB_0003c9d0;" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (goto_statement "goto LAB_0003c9d0;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;" statement_identifier : (expression_statement "puVar5 = PTR_GetTypeMetrics_003a8eb0;" (assignment_expression "puVar5 = PTR_GetTypeMetrics_003a8eb0" identifier = identifier) ;)) (expression_statement "*pbVar18 = 0;" (assignment_expression "*pbVar18 = 0" (pointer_expression "*pbVar18" * identifier) = number_literal) ;) (expression_statement "iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);" (assignment_expression "iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6)" identifier = (call_expression "(*(code *)puVar5)(param_1,param_2,param_4,param_6)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }" { (labeled_statement "LAB_0003cc70:\n    iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "pbVar21 = (byte *)*param_5;" (assignment_expression "pbVar21 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (goto_statement "goto LAB_0003cc80;" goto statement_identifier ;) })) (expression_statement "dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);" (assignment_expression "dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" ( (binary_expression "*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25" (binary_expression "*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0)" (pointer_expression "*(double *)(param_4 + 0x20)" * (cast_expression "(double *)(param_4 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) + (pointer_expression "*(double *)(param_2 + 0x1b0)" * (cast_expression "(double *)(param_2 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1b0)" ( (binary_expression "param_2 + 0x1b0" identifier + number_literal) ))))) + identifier) ))))) ;) (if_statement "if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" if (parenthesized_expression "(dVar23 < dVar24)" ( (binary_expression "dVar23 < dVar24" identifier < identifier) )) (compound_statement "{\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }" { (if_statement "if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;" if (parenthesized_expression "(*(uint *)(param_1 + 0x18) < (uint)(int)dVar23)" ( (binary_expression "*(uint *)(param_1 + 0x18) < (uint)(int)dVar23" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) < (cast_expression "(uint)(int)dVar23" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar23" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003ca38;" goto statement_identifier ;)) }) (else_clause "else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" else (if_statement "if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U))" ( (binary_expression "*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) < (parenthesized_expression "((int)(dVar23 - dVar24) | 0x80000000U)" ( (binary_expression "(int)(dVar23 - dVar24) | 0x80000000U" (cast_expression "(int)(dVar23 - dVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar23 - dVar24)" ( (binary_expression "dVar23 - dVar24" identifier - identifier) ))) | number_literal) ))) )) (compound_statement "{\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" { (labeled_statement "LAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" statement_identifier : (if_statement "if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" { (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (do_statement "do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );" do (compound_statement "{\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      }" { (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" if (parenthesized_expression "((*pbVar19 & 0x80) != 0)" ( (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" ( (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" { (do_statement "do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          }" { (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;" if (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar18" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cbc0;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar18 = pbVar18 + ~(uint)pbVar19;" (assignment_expression "pbVar18 = pbVar18 + ~(uint)pbVar19" identifier = (binary_expression "pbVar18 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar18 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar18 * 4 + 2]" identifier [ (binary_expression "(int)pbVar18 * 4 + 2" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar18 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar18 * 4 + 3]" identifier [ (binary_expression "(int)pbVar18 * 4 + 3" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }" { (labeled_statement "LAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (if_statement "if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "(0 < (int)pbVar21 - (int)pbVar19)" ( (binary_expression "0 < (int)pbVar21 - (int)pbVar19" number_literal < (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003cbe0;" goto statement_identifier ;)) }) (else_clause "else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" else (if_statement "if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19)" ( (binary_expression "(int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19" (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))) <= (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003cbe0;" goto statement_identifier ;)))) (expression_statement "*pbVar21 = 0x20;" (assignment_expression "*pbVar21 = 0x20" (pointer_expression "*pbVar21" * identifier) = number_literal) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }" { (if_statement "if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003d0e4;" goto statement_identifier ;) })) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar21 = pbVar13 + 1;" (assignment_expression "pbVar21 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" if (parenthesized_expression "((*pbVar13 & 0x80) != 0)" ( (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" ( (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" { (do_statement "do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        }" { (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;" if (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))" ( (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" ( (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 + 6 == pbVar21" (binary_expression "pbVar13 + 6" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003d050;" goto statement_identifier ;)) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar21 = pbVar21 + ~(uint)pbVar13;" (assignment_expression "pbVar21 = pbVar21 + ~(uint)pbVar13" identifier = (binary_expression "pbVar21 + ~(uint)pbVar13" identifier + (unary_expression "~(uint)pbVar13" ~ (cast_expression "(uint)pbVar13" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar21 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar21 * 4 + 2]" identifier [ (binary_expression "(int)pbVar21 * 4 + 2" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar21 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar21 * 4 + 3]" identifier [ (binary_expression "(int)pbVar21 * 4 + 3" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }" { (labeled_statement "LAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" else (if_statement "if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" if (parenthesized_expression "((byte *)0x2 < pbVar21 + 1)" ( (binary_expression "(byte *)0x2 < pbVar21 + 1" (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "pbVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0003cc44;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" else (compound_statement "{\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" { (labeled_statement "LAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;" statement_identifier : (expression_statement "iVar12 = (int)pbVar13 - *param_5;" (assignment_expression "iVar12 = (int)pbVar13 - *param_5" identifier = (binary_expression "(int)pbVar13 - *param_5" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*param_5" * identifier))) ;)) (if_statement "if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }" if (parenthesized_expression "((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n'))" ( (binary_expression "(0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')" (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) && (parenthesized_expression "(*(char *)(*param_5 + iVar12 + -1) != '\n')" ( (binary_expression "*(char *)(*param_5 + iVar12 + -1) != '\n'" (pointer_expression "*(char *)(*param_5 + iVar12 + -1)" * (cast_expression "(char *)(*param_5 + iVar12 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + iVar12 + -1)" ( (binary_expression "*param_5 + iVar12 + -1" (binary_expression "*param_5 + iVar12" (pointer_expression "*param_5" * identifier) + identifier) + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }" { (expression_statement "iVar8 = (*(code *)PTR_AcquireString_003a9814)();" (assignment_expression "iVar8 = (*(code *)PTR_AcquireString_003a9814)()" identifier = (call_expression "(*(code *)PTR_AcquireString_003a9814)()" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,*param_5,iVar12 + 1)" ( identifier , (pointer_expression "*param_5" * identifier) , (binary_expression "iVar12 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(*param_5)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) )))) ;) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" ( (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" * (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,puVar4 + -0x4bdc,iVar9 + 1)" ( identifier , (binary_expression "puVar4 + -0x4bdc" identifier + number_literal) , (binary_expression "iVar9 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(*param_5)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) )))) ;) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" ( (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" * (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,pbVar13,iVar9 + 2)" ( identifier , identifier , (binary_expression "iVar9 + 2" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(*param_5);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(*param_5)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) ))) ;) (expression_statement "pbVar13 = (byte *)(iVar8 + iVar12);" (assignment_expression "pbVar13 = (byte *)(iVar8 + iVar12)" identifier = (cast_expression "(byte *)(iVar8 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (expression_statement "*param_5 = iVar8;" (assignment_expression "*param_5 = iVar8" (pointer_expression "*param_5" * identifier) = identifier) ;) })) }))) (labeled_statement "LAB_0003cbe8:\n    pbVar19 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar19 = (byte *)0x0;" (assignment_expression "pbVar19 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) })))) (if_statement "if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0003cbfc;" goto statement_identifier ;)) (labeled_statement "LAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0003c5fc;" goto statement_identifier ;) (labeled_statement "LAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;" statement_identifier : (expression_statement "bVar3 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar3 = pbVar21 == (byte *)0x0" identifier = (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;)) (expression_statement "pbVar22 = pbVar21;" (assignment_expression "pbVar22 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" { (expression_statement "pbVar21 = (byte *)0x2;" (assignment_expression "pbVar21 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = (byte *)0x1;" (assignment_expression "pbVar22 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) })) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar20 = ~(uint)pbVar22;" (assignment_expression "uVar20 = ~(uint)pbVar22" identifier = (unary_expression "~(uint)pbVar22" ~ (cast_expression "(uint)pbVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar13 = pbVar22 + 7;" (assignment_expression "pbVar13 = pbVar22 + 7" identifier = (binary_expression "pbVar22 + 7" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" if (parenthesized_expression "((*pbVar22 & 0x80) != 0)" ( (binary_expression "(*pbVar22 & 0x80) != 0" (parenthesized_expression "(*pbVar22 & 0x80)" ( (binary_expression "*pbVar22 & 0x80" (pointer_expression "*pbVar22" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" { (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" do (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;" if (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar18" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce64;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" ( (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) ))) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" { (labeled_statement "LAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" else (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    return iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) })))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" { (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));" do (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;" if (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar18" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce80;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (uVar10 & *puVar15))" ( (binary_expression "*puVar1 != (uVar10 & *puVar15)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) ))) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" { (labeled_statement "LAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" else (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    iVar12 = iVar12 + 1;\n  }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) })))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" { (do_statement "do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" do (compound_statement "{\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar19 = pbVar18 + 1;" (assignment_expression "pbVar19 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;" if (parenthesized_expression "((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))" ( (binary_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" (parenthesized_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar18" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar18" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" ( (comma_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19" (assignment_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar18" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar18" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar19" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce9c;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar18 = pbVar19;" (assignment_expression "pbVar18 = pbVar19" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" ( (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) ))) )) ;) })) (expression_statement "pbVar19 = pbVar19 + uVar20;" (assignment_expression "pbVar19 = pbVar19 + uVar20" identifier = (binary_expression "pbVar19 + uVar20" identifier + identifier)) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar19 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar19 * 4 + 2]" identifier [ (binary_expression "(int)pbVar19 * 4 + 2" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar19 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar19 * 4 + 3]" identifier [ (binary_expression "(int)pbVar19 * 4 + 3" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" else (compound_statement "{\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" { (expression_statement "pbVar21 = pbVar22 + (int)(pbVar19 + 1);" (assignment_expression "pbVar21 = pbVar22 + (int)(pbVar19 + 1)" identifier = (binary_expression "pbVar22 + (int)(pbVar19 + 1)" identifier + (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_0003cc80;" goto statement_identifier ;) (labeled_statement "LAB_0003cbe0:\n  *pbVar19 = 10;" statement_identifier : (expression_statement "*pbVar19 = 10;" (assignment_expression "*pbVar19 = 10" (pointer_expression "*pbVar19" * identifier) = number_literal) ;)) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) (goto_statement "goto LAB_0003cbe8;" goto statement_identifier ;) (labeled_statement "code_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;" statement_identifier : (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0003c81c:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" { (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "iVar12 == 6" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0003cba4;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[iVar12 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[iVar12 * 4 + 3]" identifier [ (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" else (compound_statement "{\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" { (expression_statement "pbVar22 = pbVar13 + iVar12 + 1;" (assignment_expression "pbVar22 = pbVar13 + iVar12 + 1" identifier = (binary_expression "pbVar13 + iVar12 + 1" (binary_expression "pbVar13 + iVar12" identifier + identifier) + number_literal)) ;) }))) (goto_statement "goto LAB_0003c5f4;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,MagickBooleanType split,\n                           TypeMetric *metrics,char **caption,ExceptionInfo *exception)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  char *pcVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*caption;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = (byte *)draw_info->text;\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(image,draw_info,metrics,exception);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*caption;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25);\n  if (dVar23 < dVar24) {\n    if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}\n\n" comment comment comment comment comment comment (function_definition "ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,MagickBooleanType split,\n                           TypeMetric *metrics,char **caption,ExceptionInfo *exception)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  char *pcVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*caption;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = (byte *)draw_info->text;\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(image,draw_info,metrics,exception);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*caption;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25);\n  if (dVar23 < dVar24) {\n    if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" primitive_type (function_declarator "FormatMagickCaption(Image *image,DrawInfo *draw_info,MagickBooleanType split,\n                           TypeMetric *metrics,char **caption,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,DrawInfo *draw_info,MagickBooleanType split,\n                           TypeMetric *metrics,char **caption,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 "MagickBooleanType split" type_identifier identifier) , (parameter_declaration "TypeMetric *metrics" type_identifier (pointer_declarator "*metrics" * identifier)) , (parameter_declaration "char **caption" primitive_type (pointer_declarator "**caption" * (pointer_declarator "*caption" * identifier))) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  char *pcVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*caption;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = (byte *)draw_info->text;\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(image,draw_info,metrics,exception);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*caption;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25);\n  if (dVar23 < dVar24) {\n    if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "double dVar23;" primitive_type identifier ;) (declaration "double dVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)*caption;" (assignment_expression "pbVar22 = (byte *)*caption" identifier = (cast_expression "(byte *)*caption" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*caption" * identifier))) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);" (assignment_expression "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390)" identifier = (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1390)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1390)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1390" identifier + number_literal) )))) ;) (expression_statement "pbVar18 = (byte *)draw_info->text;" (assignment_expression "pbVar18 = (byte *)draw_info->text" identifier = (cast_expression "(byte *)draw_info->text" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "draw_info->text" identifier -> field_identifier))) ;) (expression_statement "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "pbVar21 = (byte *)0x0;" (assignment_expression "pbVar21 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0003c5f4:\n  pbVar19 = pbVar22;" statement_identifier : (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;)) (if_statement "if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" if (parenthesized_expression "(pbVar22 == (byte *)0x0)" ( (binary_expression "pbVar22 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003d088;" goto statement_identifier ;) })) (labeled_statement "LAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;" statement_identifier : (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" identifier = identifier) ;) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" if (parenthesized_expression "((*pbVar19 & 0x80) != 0)" ( (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" ( (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" { (do_statement "do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar13 = pbVar16 + 1;" (assignment_expression "pbVar13 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar13" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cb30;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" if (parenthesized_expression "((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]))" ( (binary_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (cast_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) <= (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) )))) )) (compound_statement "{\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" { (if_statement "if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) )) != number_literal) )) (goto_statement "goto LAB_0003c6ac;" goto statement_identifier ;)) (goto_statement "goto LAB_0003cc70;" goto statement_identifier ;) })) (labeled_statement "LAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (labeled_statement "LAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;" statement_identifier : (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;)) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar22;" (assignment_expression "pbVar14 = pbVar22" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" { (do_statement "do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar14 = pbVar16 + 1;" (assignment_expression "pbVar14 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar14" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cb5c;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar16 = pbVar14;" (assignment_expression "pbVar16 = pbVar14" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];" (assignment_expression "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier = (binary_expression "uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" ( (binary_expression "pbVar14 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ]))) ;) (if_statement "if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" if (parenthesized_expression "((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3])" ( (binary_expression "(int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" ( (binary_expression "pbVar14 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }" { (labeled_statement "LAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (labeled_statement "LAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" statement_identifier : (if_statement "if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003c8d8;" goto statement_identifier ;) }))) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) (else_clause "else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" else (if_statement "if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" if (parenthesized_expression "(((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680))))" ( (binary_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))" (parenthesized_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20))" ( (binary_expression "(4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)" (parenthesized_expression "(4 < uVar6 - 9)" ( (binary_expression "4 < uVar6 - 9" number_literal < (binary_expression "uVar6 - 9" identifier - number_literal)) )) && (parenthesized_expression "((uVar6 & 0xffffff7f) != 0x20)" ( (binary_expression "(uVar6 & 0xffffff7f) != 0x20" (parenthesized_expression "(uVar6 & 0xffffff7f)" ( (binary_expression "uVar6 & 0xffffff7f" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((uVar6 != 0x85 && (uVar6 != 0x1680)))" ( (parenthesized_expression "(uVar6 != 0x85 && (uVar6 != 0x1680))" ( (binary_expression "uVar6 != 0x85 && (uVar6 != 0x1680)" (binary_expression "uVar6 != 0x85" identifier != number_literal) && (parenthesized_expression "(uVar6 != 0x1680)" ( (binary_expression "uVar6 != 0x1680" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" { (if_statement "if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" if (parenthesized_expression "((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029))" ( (binary_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)" (parenthesized_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028))" ( (binary_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)" (parenthesized_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000))" ( (binary_expression "(uVar6 != 0x180e) && (10 < uVar6 - 0x2000)" (parenthesized_expression "(uVar6 != 0x180e)" ( (binary_expression "uVar6 != 0x180e" identifier != number_literal) )) && (parenthesized_expression "(10 < uVar6 - 0x2000)" ( (binary_expression "10 < uVar6 - 0x2000" number_literal < (binary_expression "uVar6 - 0x2000" identifier - number_literal)) ))) )) && (parenthesized_expression "(uVar6 != 0x2028)" ( (binary_expression "uVar6 != 0x2028" identifier != number_literal) ))) )) && (parenthesized_expression "(pbVar22 = pbVar19, uVar6 != 0x2029)" ( (comma_expression "pbVar22 = pbVar19, uVar6 != 0x2029" (assignment_expression "pbVar22 = pbVar19" identifier = identifier) , (binary_expression "uVar6 != 0x2029" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" { (labeled_statement "LAB_0003d088:\n      pbVar19 = pbVar22;" statement_identifier : (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;)) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" identifier = identifier) ;) (if_statement "if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }" if (parenthesized_expression "(((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000))" ( (binary_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)" (parenthesized_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f))" ( (binary_expression "(uVar6 != 0x202f) && (uVar6 != 0x205f)" (parenthesized_expression "(uVar6 != 0x202f)" ( (binary_expression "uVar6 != 0x202f" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0x205f)" ( (binary_expression "uVar6 != 0x205f" identifier != number_literal) ))) )) && (parenthesized_expression "(pbVar19 = pbVar21, uVar6 == 0x3000)" ( (comma_expression "pbVar19 = pbVar21, uVar6 == 0x3000" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) , (binary_expression "uVar6 == 0x3000" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar19 = pbVar22;\n      }" { (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;) })) })) (goto_statement "goto LAB_0003cb70;" goto statement_identifier ;) })))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar22;" (assignment_expression "pbVar21 = pbVar22" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" { (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;" if (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" ( (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" ( (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "iVar12 == 6" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0003cb88;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[iVar12 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[iVar12 * 4 + 3]" identifier [ (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }" else (if_statement "if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }" if (parenthesized_expression "((uVar6 & puVar17[iVar12 * 4 + 2]) == 10)" ( (binary_expression "(uVar6 & puVar17[iVar12 * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    pbVar18 = (byte *)draw_info->text;\n    goto LAB_0003c81c;\n  }" { (expression_statement "pbVar18 = (byte *)draw_info->text;" (assignment_expression "pbVar18 = (byte *)draw_info->text" identifier = (cast_expression "(byte *)draw_info->text" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "draw_info->text" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0003c81c;" goto statement_identifier ;) })))) (labeled_statement "LAB_0003c8d8:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "pbVar21 = pbVar13;" (assignment_expression "pbVar21 = pbVar13" identifier = identifier) ;) (if_statement "if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c9a8;" goto statement_identifier ;)) (do_statement "do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );" do (compound_statement "{\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  }" { (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar16 = pbVar13 + 1;" (assignment_expression "pbVar16 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" if (parenthesized_expression "((*pbVar13 & 0x80) != 0)" ( (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" ( (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" { (do_statement "do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      }" { (expression_statement "pbVar16 = pbVar22 + 1;" (assignment_expression "pbVar16 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;" if (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))" ( (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" ( (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar16 == pbVar13 + 7" identifier == (binary_expression "pbVar13 + 7" identifier + number_literal))) ))) )) (goto_statement "goto LAB_0003cb10;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar16 = pbVar16 + ~(uint)pbVar13;" (assignment_expression "pbVar16 = pbVar16 + ~(uint)pbVar13" identifier = (binary_expression "pbVar16 + ~(uint)pbVar13" identifier + (unary_expression "~(uint)pbVar13" ~ (cast_expression "(uint)pbVar13" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar16 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar16 * 4 + 2]" identifier [ (binary_expression "(int)pbVar16 * 4 + 2" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar16 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar16 * 4 + 3]" identifier [ (binary_expression "(int)pbVar16 * 4 + 3" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }" { (labeled_statement "LAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar16 = (byte *)0x1;" (assignment_expression "pbVar16 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" else (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (if_statement "if ((int)pbVar16 <= iVar12) break;" if (parenthesized_expression "((int)pbVar16 <= iVar12)" ( (binary_expression "(int)pbVar16 <= iVar12" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" { (expression_statement "bVar2 = *pbVar21;" (assignment_expression "bVar2 = *pbVar21" identifier = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar22 = bVar2;" (assignment_expression "*pbVar22 = bVar2" (pointer_expression "*pbVar22" * identifier) = identifier) ;) (expression_statement "iVar12 = (int)pbVar21 - (int)pbVar13;" (assignment_expression "iVar12 = (int)pbVar21 - (int)pbVar13" identifier = (binary_expression "(int)pbVar21 - (int)pbVar13" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar13 != (byte *)0x0) break;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (if_statement "if (0 < iVar12) goto LAB_0003c9d0;" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (goto_statement "goto LAB_0003c9d0;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;" statement_identifier : (expression_statement "puVar5 = PTR_GetTypeMetrics_003a8eb0;" (assignment_expression "puVar5 = PTR_GetTypeMetrics_003a8eb0" identifier = identifier) ;)) (expression_statement "*pbVar18 = 0;" (assignment_expression "*pbVar18 = 0" (pointer_expression "*pbVar18" * identifier) = number_literal) ;) (expression_statement "iVar12 = (*(code *)puVar5)(image,draw_info,metrics,exception);" (assignment_expression "iVar12 = (*(code *)puVar5)(image,draw_info,metrics,exception)" identifier = (call_expression "(*(code *)puVar5)(image,draw_info,metrics,exception)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,draw_info,metrics,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*caption;\n    goto LAB_0003cc80;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*caption;\n    goto LAB_0003cc80;\n  }" { (labeled_statement "LAB_0003cc70:\n    iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "pbVar21 = (byte *)*caption;" (assignment_expression "pbVar21 = (byte *)*caption" identifier = (cast_expression "(byte *)*caption" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*caption" * identifier))) ;) (goto_statement "goto LAB_0003cc80;" goto statement_identifier ;) })) (expression_statement "dVar23 = (double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25);" (assignment_expression "dVar23 = (double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)(metrics->width + draw_info->stroke_width + dVar25)" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(metrics->width + draw_info->stroke_width + dVar25)" ( (binary_expression "metrics->width + draw_info->stroke_width + dVar25" (binary_expression "metrics->width + draw_info->stroke_width" (field_expression "metrics->width" identifier -> field_identifier) + (field_expression "draw_info->stroke_width" identifier -> field_identifier)) + identifier) ))))) ;) (if_statement "if (dVar23 < dVar24) {\n    if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }" if (parenthesized_expression "(dVar23 < dVar24)" ( (binary_expression "dVar23 < dVar24" identifier < identifier) )) (compound_statement "{\n    if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;\n  }" { (if_statement "if (image->columns < (uint)(int)dVar23) goto LAB_0003ca38;" if (parenthesized_expression "(image->columns < (uint)(int)dVar23)" ( (binary_expression "image->columns < (uint)(int)dVar23" (field_expression "image->columns" identifier -> field_identifier) < (cast_expression "(uint)(int)dVar23" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar23" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003ca38;" goto statement_identifier ;)) }) (else_clause "else if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }" else (if_statement "if (image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }" if (parenthesized_expression "(image->columns < ((int)(dVar23 - dVar24) | 0x80000000U))" ( (binary_expression "image->columns < ((int)(dVar23 - dVar24) | 0x80000000U)" (field_expression "image->columns" identifier -> field_identifier) < (parenthesized_expression "((int)(dVar23 - dVar24) | 0x80000000U)" ( (binary_expression "(int)(dVar23 - dVar24) | 0x80000000U" (cast_expression "(int)(dVar23 - dVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar23 - dVar24)" ( (binary_expression "dVar23 - dVar24" identifier - identifier) ))) | number_literal) ))) )) (compound_statement "{\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = (byte *)draw_info->text;\n  }" { (labeled_statement "LAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" statement_identifier : (if_statement "if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" { (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (do_statement "do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );" do (compound_statement "{\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      }" { (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" if (parenthesized_expression "((*pbVar19 & 0x80) != 0)" ( (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" ( (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" { (do_statement "do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          }" { (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;" if (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar18" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cbc0;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar18 = pbVar18 + ~(uint)pbVar19;" (assignment_expression "pbVar18 = pbVar18 + ~(uint)pbVar19" identifier = (binary_expression "pbVar18 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar18 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar18 * 4 + 2]" identifier [ (binary_expression "(int)pbVar18 * 4 + 2" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar18 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar18 * 4 + 3]" identifier [ (binary_expression "(int)pbVar18 * 4 + 3" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }" { (labeled_statement "LAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (if_statement "if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "(0 < (int)pbVar21 - (int)pbVar19)" ( (binary_expression "0 < (int)pbVar21 - (int)pbVar19" number_literal < (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003cbe0;" goto statement_identifier ;)) }) (else_clause "else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" else (if_statement "if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19)" ( (binary_expression "(int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19" (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))) <= (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003cbe0;" goto statement_identifier ;)))) (expression_statement "*pbVar21 = 0x20;" (assignment_expression "*pbVar21 = 0x20" (pointer_expression "*pbVar21" * identifier) = number_literal) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (split == MagickFalse) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }" if (parenthesized_expression "(split == MagickFalse)" ( (binary_expression "split == MagickFalse" identifier == identifier) )) (compound_statement "{\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }" { (if_statement "if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = (byte *)draw_info->text;\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pbVar18 = (byte *)draw_info->text;" (assignment_expression "pbVar18 = (byte *)draw_info->text" identifier = (cast_expression "(byte *)draw_info->text" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "draw_info->text" identifier -> field_identifier))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003d0e4;" goto statement_identifier ;) })) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar21 = pbVar13 + 1;" (assignment_expression "pbVar21 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" if (parenthesized_expression "((*pbVar13 & 0x80) != 0)" ( (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" ( (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" { (do_statement "do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        }" { (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;" if (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))" ( (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" ( (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 + 6 == pbVar21" (binary_expression "pbVar13 + 6" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003d050;" goto statement_identifier ;)) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar21 = pbVar21 + ~(uint)pbVar13;" (assignment_expression "pbVar21 = pbVar21 + ~(uint)pbVar13" identifier = (binary_expression "pbVar21 + ~(uint)pbVar13" identifier + (unary_expression "~(uint)pbVar13" ~ (cast_expression "(uint)pbVar13" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar21 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar21 * 4 + 2]" identifier [ (binary_expression "(int)pbVar21 * 4 + 2" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar21 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar21 * 4 + 3]" identifier [ (binary_expression "(int)pbVar21 * 4 + 3" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }" { (labeled_statement "LAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" else (if_statement "if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" if (parenthesized_expression "((byte *)0x2 < pbVar21 + 1)" ( (binary_expression "(byte *)0x2 < pbVar21 + 1" (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "pbVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0003cc44;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }" else (compound_statement "{\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;\n      if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }\n    }" { (labeled_statement "LAB_0003cc44:\n      iVar12 = (int)pbVar13 - (int)*caption;" statement_identifier : (expression_statement "iVar12 = (int)pbVar13 - (int)*caption;" (assignment_expression "iVar12 = (int)pbVar13 - (int)*caption" identifier = (binary_expression "(int)pbVar13 - (int)*caption" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)*caption" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*caption" * identifier)))) ;)) (if_statement "if ((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')) {\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }" if (parenthesized_expression "((0 < iVar12) && ((*caption)[iVar12 + -1] != '\n'))" ( (binary_expression "(0 < iVar12) && ((*caption)[iVar12 + -1] != '\n')" (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) && (parenthesized_expression "((*caption)[iVar12 + -1] != '\n')" ( (binary_expression "(*caption)[iVar12 + -1] != '\n'" (subscript_expression "(*caption)[iVar12 + -1]" (parenthesized_expression "(*caption)" ( (pointer_expression "*caption" * identifier) )) [ (binary_expression "iVar12 + -1" identifier + number_literal) ]) != (char_literal "'\n'" ' escape_sequence ')) ))) )) (compound_statement "{\n        pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*caption);\n        pbVar13 = (byte *)(pcVar8 + iVar12);\n        *caption = pcVar8;\n      }" { (expression_statement "pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)();" (assignment_expression "pcVar8 = (char *)(*(code *)PTR_AcquireString_003a9814)()" identifier = (cast_expression "(char *)(*(code *)PTR_AcquireString_003a9814)()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)()" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(pcVar8,*caption,iVar12 + 1)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,*caption,iVar12 + 1)" ( identifier , (pointer_expression "*caption" * identifier) , (binary_expression "iVar12 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*caption)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(*caption)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*caption)" ( (pointer_expression "*caption" * identifier) )))) ;) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,puVar4 + -0x4bdc,iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" ( (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" * (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,puVar4 + -0x4bdc,iVar9 + 1)" ( identifier , (binary_expression "puVar4 + -0x4bdc" identifier + number_literal) , (binary_expression "iVar9 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*caption);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*caption)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(*caption)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*caption)" ( (pointer_expression "*caption" * identifier) )))) ;) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(pcVar8,pbVar13,iVar9 + 2)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" ( (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" * (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,pbVar13,iVar9 + 2)" ( identifier , identifier , (binary_expression "iVar9 + 2" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(*caption);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(*caption)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*caption)" ( (pointer_expression "*caption" * identifier) ))) ;) (expression_statement "pbVar13 = (byte *)(pcVar8 + iVar12);" (assignment_expression "pbVar13 = (byte *)(pcVar8 + iVar12)" identifier = (cast_expression "(byte *)(pcVar8 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + iVar12)" ( (binary_expression "pcVar8 + iVar12" identifier + identifier) )))) ;) (expression_statement "*caption = pcVar8;" (assignment_expression "*caption = pcVar8" (pointer_expression "*caption" * identifier) = identifier) ;) })) }))) (labeled_statement "LAB_0003cbe8:\n    pbVar19 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar19 = (byte *)0x0;" (assignment_expression "pbVar19 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar18 = (byte *)draw_info->text;" (assignment_expression "pbVar18 = (byte *)draw_info->text" identifier = (cast_expression "(byte *)draw_info->text" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "draw_info->text" identifier -> field_identifier))) ;) })))) (if_statement "if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0003cbfc;" goto statement_identifier ;)) (labeled_statement "LAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0003c5fc;" goto statement_identifier ;) (labeled_statement "LAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;" statement_identifier : (expression_statement "bVar3 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar3 = pbVar21 == (byte *)0x0" identifier = (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;)) (expression_statement "pbVar22 = pbVar21;" (assignment_expression "pbVar22 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" { (expression_statement "pbVar21 = (byte *)0x2;" (assignment_expression "pbVar21 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = (byte *)0x1;" (assignment_expression "pbVar22 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) })) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar20 = ~(uint)pbVar22;" (assignment_expression "uVar20 = ~(uint)pbVar22" identifier = (unary_expression "~(uint)pbVar22" ~ (cast_expression "(uint)pbVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar13 = pbVar22 + 7;" (assignment_expression "pbVar13 = pbVar22 + 7" identifier = (binary_expression "pbVar22 + 7" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" if (parenthesized_expression "((*pbVar22 & 0x80) != 0)" ( (binary_expression "(*pbVar22 & 0x80) != 0" (parenthesized_expression "(*pbVar22 & 0x80)" ( (binary_expression "*pbVar22 & 0x80" (pointer_expression "*pbVar22" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" { (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" do (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;" if (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar18" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce64;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" ( (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) ))) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" { (labeled_statement "LAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" else (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    return iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) })))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" { (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));" do (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;" if (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar18" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce80;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (uVar10 & *puVar15))" ( (binary_expression "*puVar1 != (uVar10 & *puVar15)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) ))) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" { (labeled_statement "LAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" else (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    iVar12 = iVar12 + 1;\n  }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) })))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" { (do_statement "do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" do (compound_statement "{\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar19 = pbVar18 + 1;" (assignment_expression "pbVar19 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;" if (parenthesized_expression "((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))" ( (binary_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" (parenthesized_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar18" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar18" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" ( (comma_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19" (assignment_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar18" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar18" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar19" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce9c;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar18 = pbVar19;" (assignment_expression "pbVar18 = pbVar19" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" ( (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) ))) )) ;) })) (expression_statement "pbVar19 = pbVar19 + uVar20;" (assignment_expression "pbVar19 = pbVar19 + uVar20" identifier = (binary_expression "pbVar19 + uVar20" identifier + identifier)) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar19 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar19 * 4 + 2]" identifier [ (binary_expression "(int)pbVar19 * 4 + 2" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar19 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar19 * 4 + 3]" identifier [ (binary_expression "(int)pbVar19 * 4 + 3" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" else (compound_statement "{\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" { (expression_statement "pbVar21 = pbVar22 + (int)(pbVar19 + 1);" (assignment_expression "pbVar21 = pbVar22 + (int)(pbVar19 + 1)" identifier = (binary_expression "pbVar22 + (int)(pbVar19 + 1)" identifier + (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_0003cc80;" goto statement_identifier ;) (labeled_statement "LAB_0003cbe0:\n  *pbVar19 = 10;" statement_identifier : (expression_statement "*pbVar19 = 10;" (assignment_expression "*pbVar19 = 10" (pointer_expression "*pbVar19" * identifier) = number_literal) ;)) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) (goto_statement "goto LAB_0003cbe8;" goto statement_identifier ;) (labeled_statement "code_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;" statement_identifier : (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0003c81c:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" { (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "iVar12 == 6" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0003cba4;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[iVar12 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[iVar12 * 4 + 3]" identifier [ (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" else (compound_statement "{\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" { (expression_statement "pbVar22 = pbVar13 + iVar12 + 1;" (assignment_expression "pbVar22 = pbVar13 + iVar12 + 1" identifier = (binary_expression "pbVar13 + iVar12 + 1" (binary_expression "pbVar13 + iVar12" identifier + identifier) + number_literal)) ;) }))) (goto_statement "goto LAB_0003c5f4;" goto statement_identifier ;) })))
(translation_unit "int FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}\n\n" (function_definition "int FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" primitive_type (function_declarator "FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "double dVar23;" primitive_type identifier ;) (declaration "double dVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)*param_5;" (assignment_expression "pbVar22 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);" (assignment_expression "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390)" identifier = (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1390)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1390)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1390" identifier + number_literal) )))) ;) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) (expression_statement "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "pbVar21 = (byte *)0x0;" (assignment_expression "pbVar21 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0003c5f4:\n  pbVar19 = pbVar22;" statement_identifier : (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;)) (if_statement "if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" if (parenthesized_expression "(pbVar22 == (byte *)0x0)" ( (binary_expression "pbVar22 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003d088;" goto statement_identifier ;) })) (labeled_statement "LAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;" statement_identifier : (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" identifier = identifier) ;) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" if (parenthesized_expression "((*pbVar19 & 0x80) != 0)" ( (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" ( (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" { (do_statement "do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar13 = pbVar16 + 1;" (assignment_expression "pbVar13 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar13" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cb30;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" if (parenthesized_expression "((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]))" ( (binary_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (cast_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) <= (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) )))) )) (compound_statement "{\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" { (if_statement "if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" ( (binary_expression "pbVar13 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ])) )) != number_literal) )) (goto_statement "goto LAB_0003c6ac;" goto statement_identifier ;)) (goto_statement "goto LAB_0003cc70;" goto statement_identifier ;) })) (labeled_statement "LAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (labeled_statement "LAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;" statement_identifier : (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;)) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar22;" (assignment_expression "pbVar14 = pbVar22" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" { (do_statement "do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar14 = pbVar16 + 1;" (assignment_expression "pbVar14 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar14" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cb5c;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar16 = pbVar14;" (assignment_expression "pbVar16 = pbVar14" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];" (assignment_expression "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier = (binary_expression "uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" ( (binary_expression "pbVar14 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ]))) ;) (if_statement "if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" if (parenthesized_expression "((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3])" ( (binary_expression "(int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" ( (binary_expression "pbVar14 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }" { (labeled_statement "LAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (labeled_statement "LAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" statement_identifier : (if_statement "if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003c8d8;" goto statement_identifier ;) }))) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) (else_clause "else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" else (if_statement "if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" if (parenthesized_expression "(((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680))))" ( (binary_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))" (parenthesized_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20))" ( (binary_expression "(4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)" (parenthesized_expression "(4 < uVar6 - 9)" ( (binary_expression "4 < uVar6 - 9" number_literal < (binary_expression "uVar6 - 9" identifier - number_literal)) )) && (parenthesized_expression "((uVar6 & 0xffffff7f) != 0x20)" ( (binary_expression "(uVar6 & 0xffffff7f) != 0x20" (parenthesized_expression "(uVar6 & 0xffffff7f)" ( (binary_expression "uVar6 & 0xffffff7f" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((uVar6 != 0x85 && (uVar6 != 0x1680)))" ( (parenthesized_expression "(uVar6 != 0x85 && (uVar6 != 0x1680))" ( (binary_expression "uVar6 != 0x85 && (uVar6 != 0x1680)" (binary_expression "uVar6 != 0x85" identifier != number_literal) && (parenthesized_expression "(uVar6 != 0x1680)" ( (binary_expression "uVar6 != 0x1680" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" { (if_statement "if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" if (parenthesized_expression "((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029))" ( (binary_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)" (parenthesized_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028))" ( (binary_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)" (parenthesized_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000))" ( (binary_expression "(uVar6 != 0x180e) && (10 < uVar6 - 0x2000)" (parenthesized_expression "(uVar6 != 0x180e)" ( (binary_expression "uVar6 != 0x180e" identifier != number_literal) )) && (parenthesized_expression "(10 < uVar6 - 0x2000)" ( (binary_expression "10 < uVar6 - 0x2000" number_literal < (binary_expression "uVar6 - 0x2000" identifier - number_literal)) ))) )) && (parenthesized_expression "(uVar6 != 0x2028)" ( (binary_expression "uVar6 != 0x2028" identifier != number_literal) ))) )) && (parenthesized_expression "(pbVar22 = pbVar19, uVar6 != 0x2029)" ( (comma_expression "pbVar22 = pbVar19, uVar6 != 0x2029" (assignment_expression "pbVar22 = pbVar19" identifier = identifier) , (binary_expression "uVar6 != 0x2029" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" { (labeled_statement "LAB_0003d088:\n      pbVar19 = pbVar22;" statement_identifier : (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;)) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" identifier = identifier) ;) (if_statement "if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }" if (parenthesized_expression "(((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000))" ( (binary_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)" (parenthesized_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f))" ( (binary_expression "(uVar6 != 0x202f) && (uVar6 != 0x205f)" (parenthesized_expression "(uVar6 != 0x202f)" ( (binary_expression "uVar6 != 0x202f" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0x205f)" ( (binary_expression "uVar6 != 0x205f" identifier != number_literal) ))) )) && (parenthesized_expression "(pbVar19 = pbVar21, uVar6 == 0x3000)" ( (comma_expression "pbVar19 = pbVar21, uVar6 == 0x3000" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) , (binary_expression "uVar6 == 0x3000" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar19 = pbVar22;\n      }" { (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" identifier = identifier) ;) })) })) (goto_statement "goto LAB_0003cb70;" goto statement_identifier ;) })))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar22;" (assignment_expression "pbVar21 = pbVar22" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" { (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;" if (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" ( (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" ( (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "iVar12 == 6" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0003cb88;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[iVar12 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[iVar12 * 4 + 3]" identifier [ (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" else (if_statement "if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" if (parenthesized_expression "((uVar6 & puVar17[iVar12 * 4 + 2]) == 10)" ( (binary_expression "(uVar6 & puVar17[iVar12 * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" { (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c81c;" goto statement_identifier ;) })))) (labeled_statement "LAB_0003c8d8:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "pbVar21 = pbVar13;" (assignment_expression "pbVar21 = pbVar13" identifier = identifier) ;) (if_statement "if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c9a8;" goto statement_identifier ;)) (do_statement "do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );" do (compound_statement "{\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  }" { (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar16 = pbVar13 + 1;" (assignment_expression "pbVar16 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" if (parenthesized_expression "((*pbVar13 & 0x80) != 0)" ( (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" ( (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" { (do_statement "do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      }" { (expression_statement "pbVar16 = pbVar22 + 1;" (assignment_expression "pbVar16 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;" if (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))" ( (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" ( (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar16 == pbVar13 + 7" identifier == (binary_expression "pbVar13 + 7" identifier + number_literal))) ))) )) (goto_statement "goto LAB_0003cb10;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar16 = pbVar16 + ~(uint)pbVar13;" (assignment_expression "pbVar16 = pbVar16 + ~(uint)pbVar13" identifier = (binary_expression "pbVar16 + ~(uint)pbVar13" identifier + (unary_expression "~(uint)pbVar13" ~ (cast_expression "(uint)pbVar13" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar16 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar16 * 4 + 2]" identifier [ (binary_expression "(int)pbVar16 * 4 + 2" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar16 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar16 * 4 + 3]" identifier [ (binary_expression "(int)pbVar16 * 4 + 3" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }" { (labeled_statement "LAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar16 = (byte *)0x1;" (assignment_expression "pbVar16 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" else (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (if_statement "if ((int)pbVar16 <= iVar12) break;" if (parenthesized_expression "((int)pbVar16 <= iVar12)" ( (binary_expression "(int)pbVar16 <= iVar12" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" { (expression_statement "bVar2 = *pbVar21;" (assignment_expression "bVar2 = *pbVar21" identifier = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar22 = bVar2;" (assignment_expression "*pbVar22 = bVar2" (pointer_expression "*pbVar22" * identifier) = identifier) ;) (expression_statement "iVar12 = (int)pbVar21 - (int)pbVar13;" (assignment_expression "iVar12 = (int)pbVar21 - (int)pbVar13" identifier = (binary_expression "(int)pbVar21 - (int)pbVar13" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar13 != (byte *)0x0) break;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (if_statement "if (0 < iVar12) goto LAB_0003c9d0;" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (goto_statement "goto LAB_0003c9d0;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;" statement_identifier : (expression_statement "puVar5 = PTR_GetTypeMetrics_003a8eb0;" (assignment_expression "puVar5 = PTR_GetTypeMetrics_003a8eb0" identifier = identifier) ;)) (expression_statement "*pbVar18 = 0;" (assignment_expression "*pbVar18 = 0" (pointer_expression "*pbVar18" * identifier) = number_literal) ;) (expression_statement "iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);" (assignment_expression "iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6)" identifier = (call_expression "(*(code *)puVar5)(param_1,param_2,param_4,param_6)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_4,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }" { (labeled_statement "LAB_0003cc70:\n    iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "pbVar21 = (byte *)*param_5;" (assignment_expression "pbVar21 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (goto_statement "goto LAB_0003cc80;" goto statement_identifier ;) })) (expression_statement "dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);" (assignment_expression "dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" ( (binary_expression "*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25" (binary_expression "*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0)" (pointer_expression "*(double *)(param_4 + 0x20)" * (cast_expression "(double *)(param_4 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) + (pointer_expression "*(double *)(param_2 + 0x1b0)" * (cast_expression "(double *)(param_2 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1b0)" ( (binary_expression "param_2 + 0x1b0" identifier + number_literal) ))))) + identifier) ))))) ;) (if_statement "if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" if (parenthesized_expression "(dVar23 < dVar24)" ( (binary_expression "dVar23 < dVar24" identifier < identifier) )) (compound_statement "{\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }" { (if_statement "if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;" if (parenthesized_expression "(*(uint *)(param_1 + 0x18) < (uint)(int)dVar23)" ( (binary_expression "*(uint *)(param_1 + 0x18) < (uint)(int)dVar23" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) < (cast_expression "(uint)(int)dVar23" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar23" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003ca38;" goto statement_identifier ;)) }) (else_clause "else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" else (if_statement "if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U))" ( (binary_expression "*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) < (parenthesized_expression "((int)(dVar23 - dVar24) | 0x80000000U)" ( (binary_expression "(int)(dVar23 - dVar24) | 0x80000000U" (cast_expression "(int)(dVar23 - dVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar23 - dVar24)" ( (binary_expression "dVar23 - dVar24" identifier - identifier) ))) | number_literal) ))) )) (compound_statement "{\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" { (labeled_statement "LAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" statement_identifier : (if_statement "if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" { (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (do_statement "do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );" do (compound_statement "{\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      }" { (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" identifier = (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" if (parenthesized_expression "((*pbVar19 & 0x80) != 0)" ( (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" ( (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" { (do_statement "do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);" do (compound_statement "{\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          }" { (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;" if (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar19 + 7 == pbVar18" (binary_expression "pbVar19 + 7" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003cbc0;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" ( (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar18 = pbVar18 + ~(uint)pbVar19;" (assignment_expression "pbVar18 = pbVar18 + ~(uint)pbVar19" identifier = (binary_expression "pbVar18 + ~(uint)pbVar19" identifier + (unary_expression "~(uint)pbVar19" ~ (cast_expression "(uint)pbVar19" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar18 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar18 * 4 + 2]" identifier [ (binary_expression "(int)pbVar18 * 4 + 2" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar18 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar18 * 4 + 3]" identifier [ (binary_expression "(int)pbVar18 * 4 + 3" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }" { (labeled_statement "LAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (if_statement "if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "(0 < (int)pbVar21 - (int)pbVar19)" ( (binary_expression "0 < (int)pbVar21 - (int)pbVar19" number_literal < (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003cbe0;" goto statement_identifier ;)) }) (else_clause "else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" else (if_statement "if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" if (parenthesized_expression "((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19)" ( (binary_expression "(int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19" (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))) <= (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0003cbe0;" goto statement_identifier ;)))) (expression_statement "*pbVar21 = 0x20;" (assignment_expression "*pbVar21 = 0x20" (pointer_expression "*pbVar21" * identifier) = number_literal) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }" { (if_statement "if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_0003d0e4;" goto statement_identifier ;) })) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar21 = pbVar13 + 1;" (assignment_expression "pbVar21 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" if (parenthesized_expression "((*pbVar13 & 0x80) != 0)" ( (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" ( (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" { (do_statement "do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        }" { (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;" if (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))" ( (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" ( (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar21" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar21" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 + 6 == pbVar21" (binary_expression "pbVar13 + 6" identifier + number_literal) == identifier)) ))) )) (goto_statement "goto LAB_0003d050;" goto statement_identifier ;)) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (expression_statement "pbVar21 = pbVar21 + ~(uint)pbVar13;" (assignment_expression "pbVar21 = pbVar21 + ~(uint)pbVar13" identifier = (binary_expression "pbVar21 + ~(uint)pbVar13" identifier + (unary_expression "~(uint)pbVar13" ~ (cast_expression "(uint)pbVar13" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar21 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar21 * 4 + 2]" identifier [ (binary_expression "(int)pbVar21 * 4 + 2" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar21 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar21 * 4 + 3]" identifier [ (binary_expression "(int)pbVar21 * 4 + 3" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }" { (labeled_statement "LAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" else (if_statement "if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" if (parenthesized_expression "((byte *)0x2 < pbVar21 + 1)" ( (binary_expression "(byte *)0x2 < pbVar21 + 1" (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "pbVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0003cc44;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" else (compound_statement "{\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" { (labeled_statement "LAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;" statement_identifier : (expression_statement "iVar12 = (int)pbVar13 - *param_5;" (assignment_expression "iVar12 = (int)pbVar13 - *param_5" identifier = (binary_expression "(int)pbVar13 - *param_5" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*param_5" * identifier))) ;)) (if_statement "if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }" if (parenthesized_expression "((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n'))" ( (binary_expression "(0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')" (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) && (parenthesized_expression "(*(char *)(*param_5 + iVar12 + -1) != '\n')" ( (binary_expression "*(char *)(*param_5 + iVar12 + -1) != '\n'" (pointer_expression "*(char *)(*param_5 + iVar12 + -1)" * (cast_expression "(char *)(*param_5 + iVar12 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + iVar12 + -1)" ( (binary_expression "*param_5 + iVar12 + -1" (binary_expression "*param_5 + iVar12" (pointer_expression "*param_5" * identifier) + identifier) + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }" { (expression_statement "iVar8 = (*(code *)PTR_AcquireString_003a9814)();" (assignment_expression "iVar8 = (*(code *)PTR_AcquireString_003a9814)()" identifier = (call_expression "(*(code *)PTR_AcquireString_003a9814)()" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,*param_5,iVar12 + 1)" ( identifier , (pointer_expression "*param_5" * identifier) , (binary_expression "iVar12 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(*param_5)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) )))) ;) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" ( (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" * (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,puVar4 + -0x4bdc,iVar9 + 1)" ( identifier , (binary_expression "puVar4 + -0x4bdc" identifier + number_literal) , (binary_expression "iVar9 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(*param_5)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) )))) ;) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" ( (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" * (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,pbVar13,iVar9 + 2)" ( identifier , identifier , (binary_expression "iVar9 + 2" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(*param_5);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(*param_5)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) ))) ;) (expression_statement "pbVar13 = (byte *)(iVar8 + iVar12);" (assignment_expression "pbVar13 = (byte *)(iVar8 + iVar12)" identifier = (cast_expression "(byte *)(iVar8 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (expression_statement "*param_5 = iVar8;" (assignment_expression "*param_5 = iVar8" (pointer_expression "*param_5" * identifier) = identifier) ;) })) }))) (labeled_statement "LAB_0003cbe8:\n    pbVar19 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar19 = (byte *)0x0;" (assignment_expression "pbVar19 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" identifier = (pointer_expression "*(byte **)(param_2 + 0x260)" * (cast_expression "(byte **)(param_2 + 0x260)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x260)" ( (binary_expression "param_2 + 0x260" identifier + number_literal) ))))) ;) })))) (if_statement "if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0003cbfc;" goto statement_identifier ;)) (labeled_statement "LAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0003c5fc;" goto statement_identifier ;) (labeled_statement "LAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;" statement_identifier : (expression_statement "bVar3 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar3 = pbVar21 == (byte *)0x0" identifier = (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;)) (expression_statement "pbVar22 = pbVar21;" (assignment_expression "pbVar22 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" { (expression_statement "pbVar21 = (byte *)0x2;" (assignment_expression "pbVar21 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = (byte *)0x1;" (assignment_expression "pbVar22 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) })) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar20 = ~(uint)pbVar22;" (assignment_expression "uVar20 = ~(uint)pbVar22" identifier = (unary_expression "~(uint)pbVar22" ~ (cast_expression "(uint)pbVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar13 = pbVar22 + 7;" (assignment_expression "pbVar13 = pbVar22 + 7" identifier = (binary_expression "pbVar22 + 7" identifier + number_literal)) ;) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" if (parenthesized_expression "((*pbVar22 & 0x80) != 0)" ( (binary_expression "(*pbVar22 & 0x80) != 0" (parenthesized_expression "(*pbVar22 & 0x80)" ( (binary_expression "*pbVar22 & 0x80" (pointer_expression "*pbVar22" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" { (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" do (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;" if (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar18" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce64;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" ( (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) ))) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" { (labeled_statement "LAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" else (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    return iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) })))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" { (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));" do (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;" if (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" ( (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" ( (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar19" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar19" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar18" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce80;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (uVar10 & *puVar15))" ( (binary_expression "*puVar1 != (uVar10 & *puVar15)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(uVar10 & *puVar15)" ( (binary_expression "uVar10 & *puVar15" identifier & (pointer_expression "*puVar15" * identifier)) ))) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" { (labeled_statement "LAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" else (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" if (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10)" ( (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier & (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" identifier [ (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + uVar20)" ( (binary_expression "pbVar18 + uVar20" identifier + identifier) ))) * number_literal) + number_literal) ])) )) == number_literal) )) (compound_statement "{\n    iVar12 = iVar12 + 1;\n  }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) })))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" { (do_statement "do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" do (compound_statement "{\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    }" { (expression_statement "pbVar19 = pbVar18 + 1;" (assignment_expression "pbVar19 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;" if (parenthesized_expression "((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))" ( (binary_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" (parenthesized_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar18" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar18" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" ( (comma_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19" (assignment_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar18" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar18" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "pbVar13 == pbVar19" identifier == identifier)) ))) )) (goto_statement "goto LAB_0003ce9c;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "pbVar18 = pbVar19;" (assignment_expression "pbVar18 = pbVar19" identifier = identifier) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" ( (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" * identifier) != (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) ))) )) ;) })) (expression_statement "pbVar19 = pbVar19 + uVar20;" (assignment_expression "pbVar19 = pbVar19 + uVar20" identifier = (binary_expression "pbVar19 + uVar20" identifier + identifier)) ;) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[(int)pbVar19 * 4 + 2]" identifier & (subscript_expression "puVar17[(int)pbVar19 * 4 + 2]" identifier [ (binary_expression "(int)pbVar19 * 4 + 2" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[(int)pbVar19 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[(int)pbVar19 * 4 + 3]" identifier [ (binary_expression "(int)pbVar19 * 4 + 3" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" else (compound_statement "{\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" { (expression_statement "pbVar21 = pbVar22 + (int)(pbVar19 + 1);" (assignment_expression "pbVar21 = pbVar22 + (int)(pbVar19 + 1)" identifier = (binary_expression "pbVar22 + (int)(pbVar19 + 1)" identifier + (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_0003cc80;" goto statement_identifier ;) (labeled_statement "LAB_0003cbe0:\n  *pbVar19 = 10;" statement_identifier : (expression_statement "*pbVar19 = 10;" (assignment_expression "*pbVar19 = 10" (pointer_expression "*pbVar19" * identifier) = number_literal) ;)) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) (goto_statement "goto LAB_0003cbe8;" goto statement_identifier ;) (labeled_statement "code_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;" statement_identifier : (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0003c81c:\n  iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" identifier = (binary_expression "uVar10 < 0x110000" identifier < number_literal)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" identifier = identifier) ;) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" if (parenthesized_expression "((uVar10 & 0x80) != 0)" ( (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" ( (binary_expression "uVar10 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" { (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;" if (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" ( (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" ( (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" ( (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" ( (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) || (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" ( (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" identifier = (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" ( (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar16" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar16" * identifier))) ^ number_literal) )) & number_literal) | (binary_expression "uVar6 << 6" identifier << number_literal))) , (binary_expression "iVar12 == 6" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0003cba4;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" identifier = (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" identifier = identifier) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" ( (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" ( (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" * identifier) & identifier) )) != (pointer_expression "*puVar1" * identifier)) )) ;) })) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" if (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" ( (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" ( (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" identifier & (subscript_expression "puVar17[iVar12 * 4 + 2]" identifier [ (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ])) ))) < (cast_expression "(int)puVar17[iVar12 * 4 + 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar17[iVar12 * 4 + 3]" identifier [ (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" identifier * number_literal) + number_literal) ]))) )) (compound_statement "{\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" { (labeled_statement "LAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" else (compound_statement "{\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" { (expression_statement "pbVar22 = pbVar13 + iVar12 + 1;" (assignment_expression "pbVar22 = pbVar13 + iVar12 + 1" identifier = (binary_expression "pbVar13 + iVar12 + 1" (binary_expression "pbVar13 + iVar12" identifier + identifier) + number_literal)) ;) }))) (goto_statement "goto LAB_0003c5f4;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression (binary_expression IDENT + LIT) == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * IDENT)) )) != (pointer_expression * IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) * LIT) + LIT) ])) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) * LIT) + LIT) ])) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) * LIT) + LIT) ])) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression (binary_expression IDENT + LIT) == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & IDENT) )) != (pointer_expression * IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) * LIT) + LIT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * IDENT)) )) != (pointer_expression * IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression IDENT == (binary_expression IDENT + LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * IDENT)) )) != (pointer_expression * IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (break_statement break ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (goto_statement goto statement_identifier ;)) }) (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) )))) < (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression (binary_expression IDENT + LIT) == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * IDENT)) )) != (pointer_expression * IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression (binary_expression IDENT + LIT) == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & IDENT) )) != (pointer_expression * IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression IDENT == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & IDENT) ))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT) + LIT) ])) )) == LIT) )) (compound_statement { (return_statement return IDENT ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression IDENT == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * IDENT)) ))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT) + LIT) ])) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression IDENT == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & IDENT) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ^ LIT) )) & LIT) | (binary_expression IDENT << LIT))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & IDENT) )) != (pointer_expression * IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }))) (goto_statement goto statement_identifier ;) })))
(function_definition "int FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" (primitive_type "int") (function_declarator "FormatMagickCaption(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)" (identifier "FormatMagickCaption") (parameter_list "(int param_1,int param_2,int param_3,int param_4,int *param_5,\n                       undefined4 param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint *puVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint *puVar15;\n  byte *pbVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  pbVar22 = (byte *)*param_5;\n  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);\n  pbVar18 = *(byte **)(param_2 + 0x260);\n  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  pbVar21 = (byte *)0x0;\nLAB_0003c5f4:\n  pbVar19 = pbVar22;\n  if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }\nLAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;\n  pbVar22 = pbVar19 + 1;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar22;\n  if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }\nLAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x58;\n  uVar10 = (uint)*pbVar19;\nLAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar16 = pbVar22;\n  pbVar14 = pbVar22;\n  puVar11 = puVar17;\n  pbVar13 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];\n  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar21 = pbVar22;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }\nLAB_0003c8d8:\n  iVar12 = 0;\n  pbVar21 = pbVar13;\n  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;\n  do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );\nLAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;\n  *pbVar18 = 0;\n  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);\n  if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }\n  dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);\n  if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }\n  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;\nLAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n  *puVar7 = 0x16;\n  pbVar21 = pbVar19;\n  pbVar19 = (byte *)0x1;\n  goto LAB_0003c5fc;\nLAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;\n  pbVar22 = pbVar21;\n  pbVar21 = pbVar21 + 1;\n  if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }\n  uVar10 = (uint)*pbVar22;\n  uVar20 = ~(uint)pbVar22;\n  pbVar13 = pbVar22 + 7;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  pbVar18 = pbVar21;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }\n  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  pbVar18 = pbVar21;\n  pbVar19 = pbVar21;\n  puVar11 = puVar17;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }\n  pbVar19 = pbVar19 + uVar20;\n  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }\n  goto LAB_0003cc80;\nLAB_0003cbe0:\n  *pbVar19 = 10;\n  pbVar13 = pbVar19;\n  goto LAB_0003cbe8;\ncode_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;\n  pbVar22 = pbVar13 + 1;\nLAB_0003c81c:\n  iVar12 = 0;\n  bVar3 = uVar10 < 0x110000;\n  uVar6 = uVar10;\n  puVar11 = puVar17;\n  pbVar16 = pbVar22;\n  pbVar21 = pbVar19;\n  if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }\n  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }\n  goto LAB_0003c5f4;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "double dVar23;" (primitive_type "double") (identifier "dVar23") (; ";")) (declaration "double dVar24;" (primitive_type "double") (identifier "dVar24") (; ";")) (declaration "double dVar25;" (primitive_type "double") (identifier "dVar25") (; ";")) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" (identifier "puVar4") (= "=") (identifier "PTR_s_courses_003a88ec")) (; ";")) (expression_statement "pbVar22 = (byte *)*param_5;" (assignment_expression "pbVar22 = (byte *)*param_5" (identifier "pbVar22") (= "=") (cast_expression "(byte *)*param_5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);" (assignment_expression "puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390)" (identifier "puVar17") (= "=") (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1390)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1390)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1390" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1390")) () ")")))) (; ";")) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(param_2 + 0x260)" (* "*") (cast_expression "(byte **)(param_2 + 0x260)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x260)" (( "(") (binary_expression "param_2 + 0x260" (identifier "param_2") (+ "+") (number_literal "0x260")) () ")"))))) (; ";")) (expression_statement "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" (identifier "dVar24") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1410" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "pbVar21 = (byte *)0x0;" (assignment_expression "pbVar21 = (byte *)0x0" (identifier "pbVar21") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0003c5f4:\n  pbVar19 = pbVar22;" (statement_identifier "LAB_0003c5f4") (: ":") (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" (identifier "pbVar19") (= "=") (identifier "pbVar22")) (; ";"))) (if_statement "if (pbVar22 == (byte *)0x0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" (if "if") (parenthesized_expression "(pbVar22 == (byte *)0x0)" (( "(") (binary_expression "pbVar22 == (byte *)0x0" (identifier "pbVar22") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    uVar6 = 0xffffffff;\n    *puVar7 = 0x16;\n    goto LAB_0003d088;\n  }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x16")) (; ";")) (goto_statement "goto LAB_0003d088;" (goto "goto") (statement_identifier "LAB_0003d088") (; ";")) (} "}"))) (labeled_statement "LAB_0003c5fc:\n  uVar10 = (uint)*pbVar19;" (statement_identifier "LAB_0003c5fc") (: ":") (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar19"))) (; ";"))) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" (identifier "pbVar16") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" (identifier "pbVar13") (= "=") (identifier "pbVar22")) (; ";")) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" (if "if") (parenthesized_expression "((*pbVar19 & 0x80) != 0)" (( "(") (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" (( "(") (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" ({ "{") (do_statement "do {\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    } while ((uVar10 & *puVar15) != *puVar1);" (do "do") (compound_statement "{\n      pbVar13 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar13;\n      puVar11 = puVar15;\n    }" ({ "{") (expression_statement "pbVar13 = pbVar16 + 1;" (assignment_expression "pbVar13 = pbVar16 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))\n      goto LAB_0003cb30;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))" (( "(") (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar19 + 7 == pbVar13" (binary_expression "pbVar19 + 7" (identifier "pbVar19") (+ "+") (number_literal "7")) (== "==") (identifier "pbVar13"))) () ")"))) () ")")) (goto_statement "goto LAB_0003cb30;" (goto "goto") (statement_identifier "LAB_0003cb30") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" (identifier "pbVar16") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" (( "(") (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" (( "(") (binary_expression "uVar10 & *puVar15" (identifier "uVar10") (& "&") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" (if "if") (parenthesized_expression "((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]))" (( "(") (binary_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=\n      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (cast_expression "(int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" (( "(") (binary_expression "pbVar13 + ~(uint)pbVar19" (identifier "pbVar13") (+ "+") (unary_expression "~(uint)pbVar19" (~ "~") (cast_expression "(uint)pbVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar19")))) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]"))) (<= "<=") (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" (( "(") (binary_expression "pbVar13 + ~(uint)pbVar19" (identifier "pbVar13") (+ "+") (unary_expression "~(uint)pbVar19" (~ "~") (cast_expression "(uint)pbVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar19")))) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")")))) () ")")) (compound_statement "{\n    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;\n    goto LAB_0003cc70;\n  }" ({ "{") (if_statement "if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;" (if "if") (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0)" (( "(") (binary_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar13 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar13 + ~(uint)pbVar19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar13 + ~(uint)pbVar19)" (( "(") (binary_expression "pbVar13 + ~(uint)pbVar19" (identifier "pbVar13") (+ "+") (unary_expression "~(uint)pbVar19" (~ "~") (cast_expression "(uint)pbVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar19")))) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c6ac;" (goto "goto") (statement_identifier "LAB_0003c6ac") (; ";"))) (goto_statement "goto LAB_0003cc70;" (goto "goto") (statement_identifier "LAB_0003cc70") (; ";")) (} "}"))) (labeled_statement "LAB_0003cb30:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003cb30") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar19"))) (; ";")) (labeled_statement "LAB_0003c6ac:\n  bVar3 = uVar10 < 0x110000;" (statement_identifier "LAB_0003c6ac") (: ":") (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";"))) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" (identifier "pbVar16") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "pbVar14 = pbVar22;" (assignment_expression "pbVar14 = pbVar22" (identifier "pbVar14") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" (identifier "pbVar13") (= "=") (identifier "pbVar19")) (; ";")) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x80) != 0)" (( "(") (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" (( "(") (binary_expression "uVar10 & 0x80" (identifier "uVar10") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" ({ "{") (do_statement "do {\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    } while ((*puVar15 & uVar10) != *puVar1);" (do "do") (compound_statement "{\n      pbVar14 = pbVar16 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar16 = pbVar14;\n      puVar11 = puVar15;\n    }" ({ "{") (expression_statement "pbVar14 = pbVar16 + 1;" (assignment_expression "pbVar14 = pbVar16 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))\n      goto LAB_0003cb5c;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))" (( "(") (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar19 + 7 == pbVar14" (binary_expression "pbVar19 + 7" (identifier "pbVar19") (+ "+") (number_literal "7")) (== "==") (identifier "pbVar14"))) () ")"))) () ")")) (goto_statement "goto LAB_0003cb5c;" (goto "goto") (statement_identifier "LAB_0003cb5c") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar16 = pbVar14;" (assignment_expression "pbVar16 = pbVar14" (identifier "pbVar16") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" (( "(") (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" (( "(") (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (& "&") (identifier "uVar10")) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];" (assignment_expression "uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" (identifier "uVar6") (= "=") (binary_expression "uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" (( "(") (binary_expression "pbVar14 + ~(uint)pbVar19" (identifier "pbVar14") (+ "+") (unary_expression "~(uint)pbVar19" (~ "~") (cast_expression "(uint)pbVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar19")))) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")))) (; ";")) (if_statement "if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }\n  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" (if "if") (parenthesized_expression "((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3])" (( "(") (binary_expression "(int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (cast_expression "(int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3" (binary_expression "(int)(pbVar14 + ~(uint)pbVar19) * 4" (cast_expression "(int)(pbVar14 + ~(uint)pbVar19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar14 + ~(uint)pbVar19)" (( "(") (binary_expression "pbVar14 + ~(uint)pbVar19" (identifier "pbVar14") (+ "+") (unary_expression "~(uint)pbVar19" (~ "~") (cast_expression "(uint)pbVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar19")))) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    pbVar19 = pbVar21;\nLAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }\n    uVar10 = (uint)*pbVar13;\n    pbVar22 = pbVar13 + 1;\n  }" ({ "{") (labeled_statement "LAB_0003cb5c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003cb5c") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" (identifier "pbVar19") (= "=") (identifier "pbVar21")) (; ";")) (labeled_statement "LAB_0003cb70:\n    if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" (statement_identifier "LAB_0003cb70") (: ":") (if_statement "if (pbVar13 == (byte *)0x0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0x0)" (( "(") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      goto LAB_0003c8d8;\n    }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x16")) (; ";")) (goto_statement "goto LAB_0003c8d8;" (goto "goto") (statement_identifier "LAB_0003c8d8") (; ";")) (} "}")))) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" (else "else") (if_statement "if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" (if "if") (parenthesized_expression "(((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680))))" (( "(") (binary_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&\n          ((uVar6 != 0x85 && (uVar6 != 0x1680)))" (parenthesized_expression "((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20))" (( "(") (binary_expression "(4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)" (parenthesized_expression "(4 < uVar6 - 9)" (( "(") (binary_expression "4 < uVar6 - 9" (number_literal "4") (< "<") (binary_expression "uVar6 - 9" (identifier "uVar6") (- "-") (number_literal "9"))) () ")")) (&& "&&") (parenthesized_expression "((uVar6 & 0xffffff7f) != 0x20)" (( "(") (binary_expression "(uVar6 & 0xffffff7f) != 0x20" (parenthesized_expression "(uVar6 & 0xffffff7f)" (( "(") (binary_expression "uVar6 & 0xffffff7f" (identifier "uVar6") (& "&") (number_literal "0xffffff7f")) () ")")) (!= "!=") (number_literal "0x20")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar6 != 0x85 && (uVar6 != 0x1680)))" (( "(") (parenthesized_expression "(uVar6 != 0x85 && (uVar6 != 0x1680))" (( "(") (binary_expression "uVar6 != 0x85 && (uVar6 != 0x1680)" (binary_expression "uVar6 != 0x85" (identifier "uVar6") (!= "!=") (number_literal "0x85")) (&& "&&") (parenthesized_expression "(uVar6 != 0x1680)" (( "(") (binary_expression "uVar6 != 0x1680" (identifier "uVar6") (!= "!=") (number_literal "0x1680")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }\n    goto LAB_0003cb70;\n  }" ({ "{") (if_statement "if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)) {\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" (if "if") (parenthesized_expression "((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029))" (( "(") (binary_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&\n       (pbVar22 = pbVar19, uVar6 != 0x2029)" (parenthesized_expression "(((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028))" (( "(") (binary_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)" (parenthesized_expression "((uVar6 != 0x180e) && (10 < uVar6 - 0x2000))" (( "(") (binary_expression "(uVar6 != 0x180e) && (10 < uVar6 - 0x2000)" (parenthesized_expression "(uVar6 != 0x180e)" (( "(") (binary_expression "uVar6 != 0x180e" (identifier "uVar6") (!= "!=") (number_literal "0x180e")) () ")")) (&& "&&") (parenthesized_expression "(10 < uVar6 - 0x2000)" (( "(") (binary_expression "10 < uVar6 - 0x2000" (number_literal "10") (< "<") (binary_expression "uVar6 - 0x2000" (identifier "uVar6") (- "-") (number_literal "0x2000"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar6 != 0x2028)" (( "(") (binary_expression "uVar6 != 0x2028" (identifier "uVar6") (!= "!=") (number_literal "0x2028")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar22 = pbVar19, uVar6 != 0x2029)" (( "(") (comma_expression "pbVar22 = pbVar19, uVar6 != 0x2029" (assignment_expression "pbVar22 = pbVar19" (identifier "pbVar22") (= "=") (identifier "pbVar19")) (, ",") (binary_expression "uVar6 != 0x2029" (identifier "uVar6") (!= "!=") (number_literal "0x2029"))) () ")"))) () ")")) (compound_statement "{\nLAB_0003d088:\n      pbVar19 = pbVar22;\n      pbVar13 = pbVar22;\n      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }\n    }" ({ "{") (labeled_statement "LAB_0003d088:\n      pbVar19 = pbVar22;" (statement_identifier "LAB_0003d088") (: ":") (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" (identifier "pbVar19") (= "=") (identifier "pbVar22")) (; ";"))) (expression_statement "pbVar13 = pbVar22;" (assignment_expression "pbVar13 = pbVar22" (identifier "pbVar13") (= "=") (identifier "pbVar22")) (; ";")) (if_statement "if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {\n        pbVar19 = pbVar22;\n      }" (if "if") (parenthesized_expression "(((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000))" (( "(") (binary_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)" (parenthesized_expression "((uVar6 != 0x202f) && (uVar6 != 0x205f))" (( "(") (binary_expression "(uVar6 != 0x202f) && (uVar6 != 0x205f)" (parenthesized_expression "(uVar6 != 0x202f)" (( "(") (binary_expression "uVar6 != 0x202f" (identifier "uVar6") (!= "!=") (number_literal "0x202f")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 != 0x205f)" (( "(") (binary_expression "uVar6 != 0x205f" (identifier "uVar6") (!= "!=") (number_literal "0x205f")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar19 = pbVar21, uVar6 == 0x3000)" (( "(") (comma_expression "pbVar19 = pbVar21, uVar6 == 0x3000" (assignment_expression "pbVar19 = pbVar21" (identifier "pbVar19") (= "=") (identifier "pbVar21")) (, ",") (binary_expression "uVar6 == 0x3000" (identifier "uVar6") (== "==") (number_literal "0x3000"))) () ")"))) () ")")) (compound_statement "{\n        pbVar19 = pbVar22;\n      }" ({ "{") (expression_statement "pbVar19 = pbVar22;" (assignment_expression "pbVar19 = pbVar22" (identifier "pbVar19") (= "=") (identifier "pbVar22")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0003cb70;" (goto "goto") (statement_identifier "LAB_0003cb70") (; ";")) (} "}"))))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar21 = pbVar22;" (assignment_expression "pbVar21 = pbVar22" (identifier "pbVar21") (= "=") (identifier "pbVar22")) (; ";")) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x80) != 0)" (( "(") (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" (( "(") (binary_expression "uVar10 & 0x80" (identifier "uVar10") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);\n  }" ({ "{") (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    } while ((uVar10 & *puVar15) != *puVar1);" (do "do") (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar21 = pbVar21 + 1;\n    }" ({ "{") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cb88;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" (( "(") (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "iVar12 == 6" (identifier "iVar12") (== "==") (number_literal "6"))) () ")"))) () ")")) (goto_statement "goto LAB_0003cb88;" (goto "goto") (statement_identifier "LAB_0003cb88") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" (( "(") (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" (( "(") (binary_expression "uVar10 & *puVar15" (identifier "uVar10") (& "&") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[iVar12 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[iVar12 * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[iVar12 * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" ({ "{") (labeled_statement "LAB_0003cb88:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003cb88") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (} "}")) (else_clause "else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" (else "else") (if_statement "if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" (if "if") (parenthesized_expression "((uVar6 & puVar17[iVar12 * 4 + 2]) == 10)" (( "(") (binary_expression "(uVar6 & puVar17[iVar12 * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[iVar12 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n    pbVar18 = *(byte **)(param_2 + 0x260);\n    goto LAB_0003c81c;\n  }" ({ "{") (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(param_2 + 0x260)" (* "*") (cast_expression "(byte **)(param_2 + 0x260)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x260)" (( "(") (binary_expression "param_2 + 0x260" (identifier "param_2") (+ "+") (number_literal "0x260")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003c81c;" (goto "goto") (statement_identifier "LAB_0003c81c") (; ";")) (} "}"))))) (labeled_statement "LAB_0003c8d8:\n  iVar12 = 0;" (statement_identifier "LAB_0003c8d8") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar21 = pbVar13;" (assignment_expression "pbVar21 = pbVar13" (identifier "pbVar21") (= "=") (identifier "pbVar13")) (; ";")) (if_statement "if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0x0)" (( "(") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003c9a8;" (goto "goto") (statement_identifier "LAB_0003c9a8") (; ";"))) (do_statement "do {\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    uVar10 = (uint)*pbVar13;\n    pbVar16 = pbVar13 + 1;\n    bVar3 = uVar10 < 0x110000;\n    uVar6 = uVar10;\n    pbVar22 = pbVar16;\n    puVar11 = puVar17;\n    if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }\n    pbVar16 = pbVar16 + ~(uint)pbVar13;\n    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar22 = pbVar18;\n    if ((int)pbVar16 <= iVar12) break;\n    while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }\n  }" ({ "{") (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar16 = pbVar13 + 1;" (assignment_expression "pbVar16 = pbVar13 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" (identifier "pbVar22") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" (if "if") (parenthesized_expression "((*pbVar13 & 0x80) != 0)" (( "(") (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" (( "(") (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);\n    }" ({ "{") (do_statement "do {\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      } while ((uVar10 & *puVar15) != *puVar1);" (do "do") (compound_statement "{\n        pbVar16 = pbVar22 + 1;\n        puVar15 = puVar11 + 4;\n        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;\n        puVar1 = puVar11 + 5;\n        bVar3 = (int)uVar6 < 0x110000;\n        pbVar22 = pbVar16;\n        puVar11 = puVar15;\n      }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 1;" (assignment_expression "pbVar16 = pbVar22 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))\n        goto LAB_0003cb10;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))" (( "(") (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar16 == pbVar13 + 7" (identifier "pbVar16") (== "==") (binary_expression "pbVar13 + 7" (identifier "pbVar13") (+ "+") (number_literal "7")))) () ")"))) () ")")) (goto_statement "goto LAB_0003cb10;" (goto "goto") (statement_identifier "LAB_0003cb10") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" (identifier "pbVar22") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" (( "(") (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" (( "(") (binary_expression "uVar10 & *puVar15" (identifier "uVar10") (& "&") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar16 = pbVar16 + ~(uint)pbVar13;" (assignment_expression "pbVar16 = pbVar16 + ~(uint)pbVar13" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + ~(uint)pbVar13" (identifier "pbVar16") (+ "+") (unary_expression "~(uint)pbVar13" (~ "~") (cast_expression "(uint)pbVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar13"))))) (; ";")) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)pbVar16 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)pbVar16 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)pbVar16 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar16 * 4 + 2" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[(int)pbVar16 * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)pbVar16 * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar16 * 4 + 3" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      pbVar16 = (byte *)0x1;\n      *puVar7 = 0x58;\n    }" ({ "{") (labeled_statement "LAB_0003cb10:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003cb10") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "pbVar16 = (byte *)0x1;" (assignment_expression "pbVar16 = (byte *)0x1" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (} "}")) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" (else "else") (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" ({ "{") (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" (identifier "pbVar22") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if ((int)pbVar16 <= iVar12) break;" (if "if") (parenthesized_expression "((int)pbVar16 <= iVar12)" (( "(") (binary_expression "(int)pbVar16 <= iVar12" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (<= "<=") (identifier "iVar12")) () ")")) (break_statement "break;" (break "break") (; ";"))) (while_statement "while( true ) {\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      bVar2 = *pbVar21;\n      pbVar18 = pbVar22 + 1;\n      pbVar21 = pbVar21 + 1;\n      *pbVar22 = bVar2;\n      iVar12 = (int)pbVar21 - (int)pbVar13;\n      if (pbVar13 != (byte *)0x0) break;\nLAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n      *puVar7 = 0x16;\n      pbVar22 = pbVar18;\n      if (0 < iVar12) goto LAB_0003c9d0;\n    }" ({ "{") (expression_statement "bVar2 = *pbVar21;" (assignment_expression "bVar2 = *pbVar21" (identifier "bVar2") (= "=") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21"))) (; ";")) (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar22 = bVar2;" (assignment_expression "*pbVar22 = bVar2" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (= "=") (identifier "bVar2")) (; ";")) (expression_statement "iVar12 = (int)pbVar21 - (int)pbVar13;" (assignment_expression "iVar12 = (int)pbVar21 - (int)pbVar13" (identifier "iVar12") (= "=") (binary_expression "(int)pbVar21 - (int)pbVar13" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")))) (; ";")) (if_statement "if (pbVar13 != (byte *)0x0) break;" (if "if") (parenthesized_expression "(pbVar13 != (byte *)0x0)" (( "(") (binary_expression "pbVar13 != (byte *)0x0" (identifier "pbVar13") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0003c9a8:\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003c9a8") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" (identifier "pbVar22") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (0 < iVar12) goto LAB_0003c9d0;" (if "if") (parenthesized_expression "(0 < iVar12)" (( "(") (binary_expression "0 < iVar12" (number_literal "0") (< "<") (identifier "iVar12")) () ")")) (goto_statement "goto LAB_0003c9d0;" (goto "goto") (statement_identifier "LAB_0003c9d0") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "LAB_0003c9d0:\n  puVar5 = PTR_GetTypeMetrics_003a8eb0;" (statement_identifier "LAB_0003c9d0") (: ":") (expression_statement "puVar5 = PTR_GetTypeMetrics_003a8eb0;" (assignment_expression "puVar5 = PTR_GetTypeMetrics_003a8eb0" (identifier "puVar5") (= "=") (identifier "PTR_GetTypeMetrics_003a8eb0")) (; ";"))) (expression_statement "*pbVar18 = 0;" (assignment_expression "*pbVar18 = 0" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);" (assignment_expression "iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6)" (identifier "iVar12") (= "=") (call_expression "(*(code *)puVar5)(param_1,param_2,param_4,param_6)" (parenthesized_expression "(*(code *)puVar5)" (( "(") (pointer_expression "*(code *)puVar5" (* "*") (cast_expression "(code *)puVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) () ")")) (argument_list "(param_1,param_2,param_4,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003cc70:\n    iVar12 = 0;\n    pbVar21 = (byte *)*param_5;\n    goto LAB_0003cc80;\n  }" ({ "{") (labeled_statement "LAB_0003cc70:\n    iVar12 = 0;" (statement_identifier "LAB_0003cc70") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar21 = (byte *)*param_5;" (assignment_expression "pbVar21 = (byte *)*param_5" (identifier "pbVar21") (= "=") (cast_expression "(byte *)*param_5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (goto_statement "goto LAB_0003cc80;" (goto "goto") (statement_identifier "LAB_0003cc80") (; ";")) (} "}"))) (expression_statement "dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);" (assignment_expression "dVar23 = (double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" (identifier "dVar23") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003a9670)\n                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" (( "(") (pointer_expression "*(code *)PTR_floor_003a9670" (* "*") (cast_expression "(code *)PTR_floor_003a9670" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003a9670"))) () ")")) (argument_list "(*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25)" (( "(") (binary_expression "*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25" (binary_expression "*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0)" (pointer_expression "*(double *)(param_4 + 0x20)" (* "*") (cast_expression "(double *)(param_4 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x20)" (( "(") (binary_expression "param_4 + 0x20" (identifier "param_4") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (pointer_expression "*(double *)(param_2 + 0x1b0)" (* "*") (cast_expression "(double *)(param_2 + 0x1b0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1b0)" (( "(") (binary_expression "param_2 + 0x1b0" (identifier "param_2") (+ "+") (number_literal "0x1b0")) () ")"))))) (+ "+") (identifier "dVar25")) () ")"))))) (; ";")) (if_statement "if (dVar23 < dVar24) {\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }\n  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" (if "if") (parenthesized_expression "(dVar23 < dVar24)" (( "(") (binary_expression "dVar23 < dVar24" (identifier "dVar23") (< "<") (identifier "dVar24")) () ")")) (compound_statement "{\n    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;\n  }" ({ "{") (if_statement "if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x18) < (uint)(int)dVar23)" (( "(") (binary_expression "*(uint *)(param_1 + 0x18) < (uint)(int)dVar23" (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (cast_expression "(uint)(int)dVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)dVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar23")))) () ")")) (goto_statement "goto LAB_0003ca38;" (goto "goto") (statement_identifier "LAB_0003ca38") (; ";"))) (} "}")) (else_clause "else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" (else "else") (if_statement "if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U))" (( "(") (binary_expression "*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)" (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (parenthesized_expression "((int)(dVar23 - dVar24) | 0x80000000U)" (( "(") (binary_expression "(int)(dVar23 - dVar24) | 0x80000000U" (cast_expression "(int)(dVar23 - dVar24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar23 - dVar24)" (( "(") (binary_expression "dVar23 - dVar24" (identifier "dVar23") (- "-") (identifier "dVar24")) () ")"))) (| "|") (number_literal "0x80000000U")) () ")"))) () ")")) (compound_statement "{\nLAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }\n    if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }\nLAB_0003cbe8:\n    pbVar19 = (byte *)0x0;\n    pbVar18 = *(byte **)(param_2 + 0x260);\n  }" ({ "{") (labeled_statement "LAB_0003ca38:\n    if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" (statement_identifier "LAB_0003ca38") (: ":") (if_statement "if (pbVar19 != (byte *)0x0) {\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(pbVar19 != (byte *)0x0)" (( "(") (binary_expression "pbVar19 != (byte *)0x0" (identifier "pbVar19") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar21 = pbVar19;\n      do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );\n    }" ({ "{") (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" (identifier "pbVar21") (= "=") (identifier "pbVar19")) (; ";")) (do_statement "do {\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      } while( true );" (do "do") (compound_statement "{\n        uVar10 = (uint)*pbVar19;\n        bVar3 = uVar10 < 0x110000;\n        uVar6 = uVar10;\n        pbVar22 = pbVar19 + 1;\n        puVar11 = puVar17;\n        pbVar18 = pbVar19 + 1;\n        if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }\n        pbVar18 = pbVar18 + ~(uint)pbVar19;\n        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        *pbVar21 = 0x20;\n        pbVar21 = pbVar21 + 1;\n      }" ({ "{") (expression_statement "uVar10 = (uint)*pbVar19;" (assignment_expression "uVar10 = (uint)*pbVar19" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar19" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar22 = pbVar19 + 1;" (assignment_expression "pbVar22 = pbVar19 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((*pbVar19 & 0x80) != 0) {\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" (if "if") (parenthesized_expression "((*pbVar19 & 0x80) != 0)" (( "(") (binary_expression "(*pbVar19 & 0x80) != 0" (parenthesized_expression "(*pbVar19 & 0x80)" (( "(") (binary_expression "*pbVar19 & 0x80" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);\n        }" ({ "{") (do_statement "do {\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          } while ((uVar10 & *puVar15) != *puVar1);" (do "do") (compound_statement "{\n            pbVar18 = pbVar22 + 1;\n            puVar15 = puVar11 + 4;\n            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;\n            puVar1 = puVar11 + 5;\n            bVar3 = (int)uVar6 < 0x110000;\n            pbVar22 = pbVar18;\n            puVar11 = puVar15;\n          }" ({ "{") (expression_statement "pbVar18 = pbVar22 + 1;" (assignment_expression "pbVar18 = pbVar22 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))\n            goto LAB_0003cbc0;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))" (( "(") (binary_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar22 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar22 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar22 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar22 ^ 0x80U" (cast_expression "(int)(char)*pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar19 + 7 == pbVar18" (binary_expression "pbVar19 + 7" (identifier "pbVar19") (+ "+") (number_literal "7")) (== "==") (identifier "pbVar18"))) () ")"))) () ")")) (goto_statement "goto LAB_0003cbc0;" (goto "goto") (statement_identifier "LAB_0003cbc0") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar22 = pbVar18;" (assignment_expression "pbVar22 = pbVar18" (identifier "pbVar22") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar10 & *puVar15) != *puVar1)" (( "(") (binary_expression "(uVar10 & *puVar15) != *puVar1" (parenthesized_expression "(uVar10 & *puVar15)" (( "(") (binary_expression "uVar10 & *puVar15" (identifier "uVar10") (& "&") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar18 + ~(uint)pbVar19;" (assignment_expression "pbVar18 = pbVar18 + ~(uint)pbVar19" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + ~(uint)pbVar19" (identifier "pbVar18") (+ "+") (unary_expression "~(uint)pbVar19" (~ "~") (cast_expression "(uint)pbVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar19"))))) (; ";")) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }\n        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)pbVar18 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)pbVar18 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)pbVar18 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar18 * 4 + 2" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[(int)pbVar18 * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)pbVar18 * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar18 * 4 + 3" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          *puVar7 = 0x58;\n          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;\n        }" ({ "{") (labeled_statement "LAB_0003cbc0:\n          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003cbc0") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (if_statement "if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" (if "if") (parenthesized_expression "(0 < (int)pbVar21 - (int)pbVar19)" (( "(") (binary_expression "0 < (int)pbVar21 - (int)pbVar19" (number_literal "0") (< "<") (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")))) () ")")) (goto_statement "goto LAB_0003cbe0;" (goto "goto") (statement_identifier "LAB_0003cbe0") (; ";"))) (} "}")) (else_clause "else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" (else "else") (if_statement "if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;" (if "if") (parenthesized_expression "((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19)" (( "(") (binary_expression "(int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19" (cast_expression "(int)(pbVar18 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + 1)" (( "(") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1")) () ")"))) (<= "<=") (binary_expression "(int)pbVar21 - (int)pbVar19" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")))) () ")")) (goto_statement "goto LAB_0003cbe0;" (goto "goto") (statement_identifier "LAB_0003cbe0") (; ";"))))) (expression_statement "*pbVar21 = 0x20;" (assignment_expression "*pbVar21 = 0x20" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (if_statement "if (param_3 == 0) {\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }\n    else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }\n      uVar10 = (uint)*pbVar13;\n      pbVar21 = pbVar13 + 1;\n      bVar3 = uVar10 < 0x110000;\n      uVar6 = uVar10;\n      puVar11 = puVar17;\n      if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }\n      pbVar21 = pbVar21 + ~(uint)pbVar13;\n      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;\n    }" ({ "{") (if_statement "if (pbVar13 == (byte *)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0x0)" (( "(") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        pbVar18 = *(byte **)(param_2 + 0x260);\n        *puVar7 = 0x16;\n        goto LAB_0003d0e4;\n      }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(param_2 + 0x260)" (* "*") (cast_expression "(byte **)(param_2 + 0x260)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x260)" (( "(") (binary_expression "param_2 + 0x260" (identifier "param_2") (+ "+") (number_literal "0x260")) () ")"))))) (; ";")) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x16")) (; ";")) (goto_statement "goto LAB_0003d0e4;" (goto "goto") (statement_identifier "LAB_0003d0e4") (; ";")) (} "}"))) (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar21 = pbVar13 + 1;" (assignment_expression "pbVar21 = pbVar13 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if ((*pbVar13 & 0x80) != 0) {\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" (if "if") (parenthesized_expression "((*pbVar13 & 0x80) != 0)" (( "(") (binary_expression "(*pbVar13 & 0x80) != 0" (parenthesized_expression "(*pbVar13 & 0x80)" (( "(") (binary_expression "*pbVar13 & 0x80" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);\n      }" ({ "{") (do_statement "do {\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        } while ((*puVar15 & uVar10) != *puVar1);" (do "do") (compound_statement "{\n          puVar15 = puVar11 + 4;\n          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;\n          pbVar21 = pbVar21 + 1;\n          puVar1 = puVar11 + 5;\n          bVar3 = (int)uVar6 < 0x110000;\n          puVar11 = puVar15;\n        }" ({ "{") (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))\n          goto LAB_0003d050;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))" (( "(") (binary_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" (parenthesized_expression "(((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar21 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21" (assignment_expression "uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar21 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar21 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar21 ^ 0x80U" (cast_expression "(int)(char)*pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar13 + 6 == pbVar21" (binary_expression "pbVar13 + 6" (identifier "pbVar13") (+ "+") (number_literal "6")) (== "==") (identifier "pbVar21"))) () ")"))) () ")")) (goto_statement "goto LAB_0003d050;" (goto "goto") (statement_identifier "LAB_0003d050") (; ";"))) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" (( "(") (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" (( "(") (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (& "&") (identifier "uVar10")) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar21 = pbVar21 + ~(uint)pbVar13;" (assignment_expression "pbVar21 = pbVar21 + ~(uint)pbVar13" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + ~(uint)pbVar13" (identifier "pbVar21") (+ "+") (unary_expression "~(uint)pbVar13" (~ "~") (cast_expression "(uint)pbVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar13"))))) (; ";")) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }\n      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)pbVar21 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)pbVar21 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)pbVar21 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar21 * 4 + 2" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[(int)pbVar21 * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)pbVar21 * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar21 * 4 + 3" (binary_expression "(int)pbVar21 * 4" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n        *puVar7 = 0x58;\n      }" ({ "{") (labeled_statement "LAB_0003d050:\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003d050") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (} "}")) (else_clause "else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" (else "else") (if_statement "if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;" (if "if") (parenthesized_expression "((byte *)0x2 < pbVar21 + 1)" (( "(") (binary_expression "(byte *)0x2 < pbVar21 + 1" (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")) (< "<") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_0003cc44;" (goto "goto") (statement_identifier "LAB_0003cc44") (; ";"))))) (} "}")) (else_clause "else {\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" (else "else") (compound_statement "{\nLAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;\n      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }\n    }" ({ "{") (labeled_statement "LAB_0003cc44:\n      iVar12 = (int)pbVar13 - *param_5;" (statement_identifier "LAB_0003cc44") (: ":") (expression_statement "iVar12 = (int)pbVar13 - *param_5;" (assignment_expression "iVar12 = (int)pbVar13 - *param_5" (identifier "iVar12") (= "=") (binary_expression "(int)pbVar13 - *param_5" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (- "-") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";"))) (if_statement "if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }" (if "if") (parenthesized_expression "((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n'))" (( "(") (binary_expression "(0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')" (parenthesized_expression "(0 < iVar12)" (( "(") (binary_expression "0 < iVar12" (number_literal "0") (< "<") (identifier "iVar12")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*param_5 + iVar12 + -1) != '\n')" (( "(") (binary_expression "*(char *)(*param_5 + iVar12 + -1) != '\n'" (pointer_expression "*(char *)(*param_5 + iVar12 + -1)" (* "*") (cast_expression "(char *)(*param_5 + iVar12 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + iVar12 + -1)" (( "(") (binary_expression "*param_5 + iVar12 + -1" (binary_expression "*param_5 + iVar12" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (identifier "iVar12")) (+ "+") (number_literal "-1")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        iVar8 = (*(code *)PTR_AcquireString_003a9814)();\n        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);\n        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);\n        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);\n        (*(code *)PTR_DestroyString_003a9074)(*param_5);\n        pbVar13 = (byte *)(iVar8 + iVar12);\n        *param_5 = iVar8;\n      }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR_AcquireString_003a9814)();" (assignment_expression "iVar8 = (*(code *)PTR_AcquireString_003a9814)()" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_AcquireString_003a9814)()" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" (( "(") (pointer_expression "*(code *)PTR_AcquireString_003a9814" (* "*") (cast_expression "(code *)PTR_AcquireString_003a9814" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireString_003a9814"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(iVar8,*param_5,iVar12 + 1)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "*param_5" (* "*") (identifier "param_5")) (, ",") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_strlen_003a9338)(*param_5)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" (( "(") (pointer_expression "*(code *)PTR_strlen_003a9338" (* "*") (cast_expression "(code *)PTR_strlen_003a9338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_003a9338"))) () ")")) (argument_list "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" (( "(") (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" (* "*") (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ConcatenateMagickString_003a9898"))) () ")")) (argument_list "(iVar8,puVar4 + -0x4bdc,iVar9 + 1)" (( "(") (identifier "iVar8") (, ",") (binary_expression "puVar4 + -0x4bdc" (identifier "puVar4") (+ "+") (number_literal "-0x4bdc")) (, ",") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_strlen_003a9338)(*param_5)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" (( "(") (pointer_expression "*(code *)PTR_strlen_003a9338" (* "*") (cast_expression "(code *)PTR_strlen_003a9338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_003a9338"))) () ")")) (argument_list "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);" (call_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2)" (parenthesized_expression "(*(code *)PTR_ConcatenateMagickString_003a9898)" (( "(") (pointer_expression "*(code *)PTR_ConcatenateMagickString_003a9898" (* "*") (cast_expression "(code *)PTR_ConcatenateMagickString_003a9898" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ConcatenateMagickString_003a9898"))) () ")")) (argument_list "(iVar8,pbVar13,iVar9 + 2)" (( "(") (identifier "iVar8") (, ",") (identifier "pbVar13") (, ",") (binary_expression "iVar9 + 2" (identifier "iVar9") (+ "+") (number_literal "2")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(*param_5);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(*param_5)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_003a9074" (* "*") (cast_expression "(code *)PTR_DestroyString_003a9074" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_003a9074"))) () ")")) (argument_list "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")"))) (; ";")) (expression_statement "pbVar13 = (byte *)(iVar8 + iVar12);" (assignment_expression "pbVar13 = (byte *)(iVar8 + iVar12)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(iVar8 + iVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12)" (( "(") (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) () ")")))) (; ";")) (expression_statement "*param_5 = iVar8;" (assignment_expression "*param_5 = iVar8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0003cbe8:\n    pbVar19 = (byte *)0x0;" (statement_identifier "LAB_0003cbe8") (: ":") (expression_statement "pbVar19 = (byte *)0x0;" (assignment_expression "pbVar19 = (byte *)0x0" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pbVar18 = *(byte **)(param_2 + 0x260);" (assignment_expression "pbVar18 = *(byte **)(param_2 + 0x260)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(param_2 + 0x260)" (* "*") (cast_expression "(byte **)(param_2 + 0x260)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x260)" (( "(") (binary_expression "param_2 + 0x260" (identifier "param_2") (+ "+") (number_literal "0x260")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;" (if "if") (parenthesized_expression "(pbVar13 != (byte *)0x0)" (( "(") (binary_expression "pbVar13 != (byte *)0x0" (identifier "pbVar13") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto code_r0x0003cbfc;" (goto "goto") (statement_identifier "code_r0x0003cbfc") (; ";"))) (labeled_statement "LAB_0003d0e4:\n  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003d0e4") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" (identifier "pbVar21") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_0003c5fc;" (goto "goto") (statement_identifier "LAB_0003c5fc") (; ";")) (labeled_statement "LAB_0003cc80:\n  bVar3 = pbVar21 == (byte *)0x0;" (statement_identifier "LAB_0003cc80") (: ":") (expression_statement "bVar3 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar3 = pbVar21 == (byte *)0x0" (identifier "bVar3") (= "=") (binary_expression "pbVar21 == (byte *)0x0" (identifier "pbVar21") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";"))) (expression_statement "pbVar22 = pbVar21;" (assignment_expression "pbVar22 = pbVar21" (identifier "pbVar22") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar3) {\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n    pbVar21 = (byte *)0x2;\n    pbVar22 = (byte *)0x1;\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x16;\n  }" ({ "{") (expression_statement "pbVar21 = (byte *)0x2;" (assignment_expression "pbVar21 = (byte *)0x2" (identifier "pbVar21") (= "=") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "pbVar22 = (byte *)0x1;" (assignment_expression "pbVar22 = (byte *)0x1" (identifier "pbVar22") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x16")) (; ";")) (} "}"))) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar22"))) (; ";")) (expression_statement "uVar20 = ~(uint)pbVar22;" (assignment_expression "uVar20 = ~(uint)pbVar22" (identifier "uVar20") (= "=") (unary_expression "~(uint)pbVar22" (~ "~") (cast_expression "(uint)pbVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar13 = pbVar22 + 7;" (assignment_expression "pbVar13 = pbVar22 + 7" (identifier "pbVar13") (= "=") (binary_expression "pbVar22 + 7" (identifier "pbVar22") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" (identifier "pbVar19") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" (identifier "pbVar18") (= "=") (identifier "pbVar21")) (; ";")) (if_statement "if ((*pbVar22 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" (if "if") (parenthesized_expression "((*pbVar22 & 0x80) != 0)" (( "(") (binary_expression "(*pbVar22 & 0x80) != 0" (parenthesized_expression "(*pbVar22 & 0x80)" (( "(") (binary_expression "*pbVar22 & 0x80" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" ({ "{") (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" (do "do") (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" ({ "{") (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce64;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" (( "(") (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar13 == pbVar18" (identifier "pbVar13") (== "==") (identifier "pbVar18"))) () ")"))) () ")")) (goto_statement "goto LAB_0003ce64;" (goto "goto") (statement_identifier "LAB_0003ce64") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" (identifier "pbVar19") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" (( "(") (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (!= "!=") (parenthesized_expression "(*puVar15 & uVar10)" (( "(") (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (& "&") (identifier "uVar10")) () ")"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + uVar20)" (( "(") (binary_expression "pbVar18 + uVar20" (identifier "pbVar18") (+ "+") (identifier "uVar20")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + uVar20)" (( "(") (binary_expression "pbVar18 + uVar20" (identifier "pbVar18") (+ "+") (identifier "uVar20")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" ({ "{") (labeled_statement "LAB_0003ce64:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003ce64") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar22"))) (; ";")) (} "}")) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" (else "else") (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {\n    return iVar12;\n  }" (if "if") (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0)" (( "(") (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + uVar20)" (( "(") (binary_expression "pbVar18 + uVar20" (identifier "pbVar18") (+ "+") (identifier "uVar20")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return iVar12;\n  }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" (identifier "pbVar19") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" (identifier "pbVar18") (= "=") (identifier "pbVar21")) (; ";")) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x80) != 0)" (( "(") (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" (( "(") (binary_expression "uVar10 & 0x80" (identifier "uVar10") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));\n  }" ({ "{") (do_statement "do {\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    } while (*puVar1 != (uVar10 & *puVar15));" (do "do") (compound_statement "{\n      pbVar18 = pbVar19 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar19 = pbVar18;\n      puVar11 = puVar15;\n    }" ({ "{") (expression_statement "pbVar18 = pbVar19 + 1;" (assignment_expression "pbVar18 = pbVar19 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))\n      goto LAB_0003ce80;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))" (( "(") (binary_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (parenthesized_expression "(((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar19 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18" (assignment_expression "uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar19 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar19 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar19 ^ 0x80U" (cast_expression "(int)(char)*pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar13 == pbVar18" (identifier "pbVar13") (== "==") (identifier "pbVar18"))) () ")"))) () ")")) (goto_statement "goto LAB_0003ce80;" (goto "goto") (statement_identifier "LAB_0003ce80") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" (identifier "pbVar19") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*puVar1 != (uVar10 & *puVar15))" (( "(") (binary_expression "*puVar1 != (uVar10 & *puVar15)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (!= "!=") (parenthesized_expression "(uVar10 & *puVar15)" (( "(") (binary_expression "uVar10 & *puVar15" (identifier "uVar10") (& "&") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }\n  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <\n      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + uVar20)" (( "(") (binary_expression "pbVar18 + uVar20" (identifier "pbVar18") (+ "+") (identifier "uVar20")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar18 + uVar20) * 4 + 3" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + uVar20)" (( "(") (binary_expression "pbVar18 + uVar20" (identifier "pbVar18") (+ "+") (identifier "uVar20")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n    uVar10 = (uint)*pbVar22;\n  }" ({ "{") (labeled_statement "LAB_0003ce80:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003ce80") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (expression_statement "uVar10 = (uint)*pbVar22;" (assignment_expression "uVar10 = (uint)*pbVar22" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar22"))) (; ";")) (} "}")) (else_clause "else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" (else "else") (if_statement "if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {\n    iVar12 = iVar12 + 1;\n  }" (if "if") (parenthesized_expression "((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10)" (( "(") (binary_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10" (parenthesized_expression "(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)(pbVar18 + uVar20) * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)(pbVar18 + uVar20) * 4 + 2" (binary_expression "(int)(pbVar18 + uVar20) * 4" (cast_expression "(int)(pbVar18 + uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + uVar20)" (( "(") (binary_expression "pbVar18 + uVar20" (identifier "pbVar18") (+ "+") (identifier "uVar20")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n    iVar12 = iVar12 + 1;\n  }" ({ "{") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}"))))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" (identifier "pbVar18") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "pbVar19 = pbVar21;" (assignment_expression "pbVar19 = pbVar21" (identifier "pbVar19") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x80) != 0)" (( "(") (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" (( "(") (binary_expression "uVar10 & 0x80" (identifier "uVar10") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));\n  }" ({ "{") (do_statement "do {\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    } while (*puVar1 != (*puVar15 & uVar10));" (do "do") (compound_statement "{\n      pbVar19 = pbVar18 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      pbVar18 = pbVar19;\n      puVar11 = puVar15;\n    }" ({ "{") (expression_statement "pbVar19 = pbVar18 + 1;" (assignment_expression "pbVar19 = pbVar18 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))\n      goto LAB_0003ce9c;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))" (( "(") (binary_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" (parenthesized_expression "(((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar18 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar18" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19" (assignment_expression "uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar18 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar18 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar18 ^ 0x80U" (cast_expression "(int)(char)*pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar18" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "pbVar13 == pbVar19" (identifier "pbVar13") (== "==") (identifier "pbVar19"))) () ")"))) () ")")) (goto_statement "goto LAB_0003ce9c;" (goto "goto") (statement_identifier "LAB_0003ce9c") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "pbVar18 = pbVar19;" (assignment_expression "pbVar18 = pbVar19" (identifier "pbVar18") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*puVar1 != (*puVar15 & uVar10))" (( "(") (binary_expression "*puVar1 != (*puVar15 & uVar10)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (!= "!=") (parenthesized_expression "(*puVar15 & uVar10)" (( "(") (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (& "&") (identifier "uVar10")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar19 = pbVar19 + uVar20;" (assignment_expression "pbVar19 = pbVar19 + uVar20" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + uVar20" (identifier "pbVar19") (+ "+") (identifier "uVar20"))) (; ";")) (if_statement "if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[(int)pbVar19 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[(int)pbVar19 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[(int)pbVar19 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar19 * 4 + 2" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[(int)pbVar19 * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[(int)pbVar19 * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "(int)pbVar19 * 4 + 3" (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" ({ "{") (labeled_statement "LAB_0003ce9c:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003ce9c") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (} "}")) (else_clause "else {\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" (else "else") (compound_statement "{\n    pbVar21 = pbVar22 + (int)(pbVar19 + 1);\n  }" ({ "{") (expression_statement "pbVar21 = pbVar22 + (int)(pbVar19 + 1);" (assignment_expression "pbVar21 = pbVar22 + (int)(pbVar19 + 1)" (identifier "pbVar21") (= "=") (binary_expression "pbVar22 + (int)(pbVar19 + 1)" (identifier "pbVar22") (+ "+") (cast_expression "(int)(pbVar19 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar19 + 1)" (( "(") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")))) (goto_statement "goto LAB_0003cc80;" (goto "goto") (statement_identifier "LAB_0003cc80") (; ";")) (labeled_statement "LAB_0003cbe0:\n  *pbVar19 = 10;" (statement_identifier "LAB_0003cbe0") (: ":") (expression_statement "*pbVar19 = 10;" (assignment_expression "*pbVar19 = 10" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (= "=") (number_literal "10")) (; ";"))) (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" (identifier "pbVar13") (= "=") (identifier "pbVar19")) (; ";")) (goto_statement "goto LAB_0003cbe8;" (goto "goto") (statement_identifier "LAB_0003cbe8") (; ";")) (labeled_statement "code_r0x0003cbfc:\n  uVar10 = (uint)*pbVar13;" (statement_identifier "code_r0x0003cbfc") (: ":") (expression_statement "uVar10 = (uint)*pbVar13;" (assignment_expression "uVar10 = (uint)*pbVar13" (identifier "uVar10") (= "=") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) (; ";"))) (expression_statement "pbVar22 = pbVar13 + 1;" (assignment_expression "pbVar22 = pbVar13 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_0003c81c:\n  iVar12 = 0;" (statement_identifier "LAB_0003c81c") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (expression_statement "bVar3 = uVar10 < 0x110000;" (assignment_expression "bVar3 = uVar10 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "uVar10 < 0x110000" (identifier "uVar10") (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" (identifier "uVar6") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pbVar16 = pbVar22;" (assignment_expression "pbVar16 = pbVar22" (identifier "pbVar16") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "pbVar21 = pbVar19;" (assignment_expression "pbVar21 = pbVar19" (identifier "pbVar21") (= "=") (identifier "pbVar19")) (; ";")) (if_statement "if ((uVar10 & 0x80) != 0) {\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x80) != 0)" (( "(") (binary_expression "(uVar10 & 0x80) != 0" (parenthesized_expression "(uVar10 & 0x80)" (( "(") (binary_expression "uVar10 & 0x80" (identifier "uVar10") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);\n  }" ({ "{") (do_statement "do {\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    } while ((*puVar15 & uVar10) != *puVar1);" (do "do") (compound_statement "{\n      iVar12 = iVar12 + 1;\n      puVar15 = puVar11 + 4;\n      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;\n      puVar1 = puVar11 + 5;\n      bVar3 = (int)uVar6 < 0x110000;\n      puVar11 = puVar15;\n      pbVar16 = pbVar16 + 1;\n    }" ({ "{") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar11 + 4;" (assignment_expression "puVar15 = puVar11 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))\n      goto LAB_0003cba4;" (if "if") (parenthesized_expression "((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))" (( "(") (binary_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||\n         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (parenthesized_expression "(((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3))" (( "(") (binary_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)" (parenthesized_expression "((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0)" (( "(") (binary_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0" (parenthesized_expression "(((int)(char)*pbVar16 ^ 0x80U) & 0xc0)" (( "(") (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xc0" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6)" (( "(") (comma_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6" (assignment_expression "uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (identifier "uVar6") (= "=") (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6" (binary_expression "((int)(char)*pbVar16 ^ 0x80U) & 0xff" (parenthesized_expression "((int)(char)*pbVar16 ^ 0x80U)" (( "(") (binary_expression "(int)(char)*pbVar16 ^ 0x80U" (cast_expression "(int)(char)*pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (^ "^") (number_literal "0x80U")) () ")")) (& "&") (number_literal "0xff")) (| "|") (binary_expression "uVar6 << 6" (identifier "uVar6") (<< "<<") (number_literal "6")))) (, ",") (binary_expression "iVar12 == 6" (identifier "iVar12") (== "==") (number_literal "6"))) () ")"))) () ")")) (goto_statement "goto LAB_0003cba4;" (goto "goto") (statement_identifier "LAB_0003cba4") (; ";"))) (expression_statement "puVar1 = puVar11 + 5;" (assignment_expression "puVar1 = puVar11 + 5" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "bVar3 = (int)uVar6 < 0x110000;" (assignment_expression "bVar3 = (int)uVar6 < 0x110000" (identifier "bVar3") (= "=") (binary_expression "(int)uVar6 < 0x110000" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x110000"))) (; ";")) (expression_statement "puVar11 = puVar15;" (assignment_expression "puVar11 = puVar15" (identifier "puVar11") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*puVar15 & uVar10) != *puVar1)" (( "(") (binary_expression "(*puVar15 & uVar10) != *puVar1" (parenthesized_expression "(*puVar15 & uVar10)" (( "(") (binary_expression "*puVar15 & uVar10" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (& "&") (identifier "uVar10")) () ")")) (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }\n  else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" (if "if") (parenthesized_expression "((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3])" (( "(") (binary_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]" (cast_expression "(int)(uVar6 & puVar17[iVar12 * 4 + 2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 & puVar17[iVar12 * 4 + 2])" (( "(") (binary_expression "uVar6 & puVar17[iVar12 * 4 + 2]" (identifier "uVar6") (& "&") (subscript_expression "puVar17[iVar12 * 4 + 2]" (identifier "puVar17") ([ "[") (binary_expression "iVar12 * 4 + 2" (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]"))) () ")"))) (< "<") (cast_expression "(int)puVar17[iVar12 * 4 + 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar17[iVar12 * 4 + 3]" (identifier "puVar17") ([ "[") (binary_expression "iVar12 * 4 + 3" (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) () ")")) (compound_statement "{\nLAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n    *puVar7 = 0x58;\n  }" ({ "{") (labeled_statement "LAB_0003cba4:\n    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (statement_identifier "LAB_0003cba4") (: ":") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar7 = 0x58;" (assignment_expression "*puVar7 = 0x58" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x58")) (; ";")) (} "}")) (else_clause "else {\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" (else "else") (compound_statement "{\n    pbVar22 = pbVar13 + iVar12 + 1;\n  }" ({ "{") (expression_statement "pbVar22 = pbVar13 + iVar12 + 1;" (assignment_expression "pbVar22 = pbVar13 + iVar12 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar13 + iVar12 + 1" (binary_expression "pbVar13 + iVar12" (identifier "pbVar13") (+ "+") (identifier "iVar12")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0003c5f4;" (goto "goto") (statement_identifier "LAB_0003c5f4") (; ";")) (} "}")))
(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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) right: (number_literal)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) right: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) right: (number_literal)) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (break_statement)) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (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: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) condition: (parenthesized_expression (true))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) 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))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))

int MASKED(int param_1,int param_2,int param_3,int param_4,int *param_5,
                       undefined4 param_6)

{
  uint *puVar1;
  byte bVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  uint uVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  uint *puVar11;
  int iVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint *puVar15;
  byte *pbVar16;
  uint *puVar17;
  byte *pbVar18;
  byte *pbVar19;
  uint uVar20;
  byte *pbVar21;
  byte *pbVar22;
  double dVar23;
  double dVar24;
  double dVar25;
  
  puVar4 = PTR_s_courses_003a88ec;
  pbVar22 = (byte *)*param_5;
  dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  puVar17 = (uint *)(PTR_LAB_003a88e0 + 0x1390);
  pbVar18 = *(byte **)(param_2 + 0x260);
  dVar24 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
  pbVar21 = (byte *)0x0;
LAB_0003c5f4:
  pbVar19 = pbVar22;
  if (pbVar22 == (byte *)0x0) {
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    uVar6 = 0xffffffff;
    *puVar7 = 0x16;
    goto LAB_0003d088;
  }
LAB_0003c5fc:
  uVar10 = (uint)*pbVar19;
  pbVar22 = pbVar19 + 1;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar16 = pbVar22;
  puVar11 = puVar17;
  pbVar13 = pbVar22;
  if ((*pbVar19 & 0x80) != 0) {
    do {
      pbVar13 = pbVar16 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar13))
      goto LAB_0003cb30;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar16 = pbVar13;
      puVar11 = puVar15;
    } while ((uVar10 & *puVar15) != *puVar1);
  }
  if ((int)puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 3] <=
      (int)(uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2])) {
    if ((uVar6 & puVar17[(int)(pbVar13 + ~(uint)pbVar19) * 4 + 2]) != 0) goto LAB_0003c6ac;
    goto LAB_0003cc70;
  }
LAB_0003cb30:
  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
  *puVar7 = 0x58;
  uVar10 = (uint)*pbVar19;
LAB_0003c6ac:
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar16 = pbVar22;
  pbVar14 = pbVar22;
  puVar11 = puVar17;
  pbVar13 = pbVar19;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar14 = pbVar16 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar14))
      goto LAB_0003cb5c;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar16 = pbVar14;
      puVar11 = puVar15;
    } while ((*puVar15 & uVar10) != *puVar1);
  }
  uVar6 = uVar6 & puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 2];
  if ((int)uVar6 < (int)puVar17[(int)(pbVar14 + ~(uint)pbVar19) * 4 + 3]) {
LAB_0003cb5c:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    pbVar19 = pbVar21;
LAB_0003cb70:
    if (pbVar13 == (byte *)0x0) {
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      *puVar7 = 0x16;
      goto LAB_0003c8d8;
    }
    uVar10 = (uint)*pbVar13;
    pbVar22 = pbVar13 + 1;
  }
  else if (((4 < uVar6 - 9) && ((uVar6 & 0xffffff7f) != 0x20)) &&
          ((uVar6 != 0x85 && (uVar6 != 0x1680)))) {
    if ((((uVar6 != 0x180e) && (10 < uVar6 - 0x2000)) && (uVar6 != 0x2028)) &&
       (pbVar22 = pbVar19, uVar6 != 0x2029)) {
LAB_0003d088:
      pbVar19 = pbVar22;
      pbVar13 = pbVar22;
      if (((uVar6 != 0x202f) && (uVar6 != 0x205f)) && (pbVar19 = pbVar21, uVar6 == 0x3000)) {
        pbVar19 = pbVar22;
      }
    }
    goto LAB_0003cb70;
  }
  iVar12 = 0;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  puVar11 = puVar17;
  pbVar21 = pbVar22;
  if ((uVar10 & 0x80) != 0) {
    do {
      iVar12 = iVar12 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))
      goto LAB_0003cb88;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      puVar11 = puVar15;
      pbVar21 = pbVar21 + 1;
    } while ((uVar10 & *puVar15) != *puVar1);
  }
  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {
LAB_0003cb88:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else if ((uVar6 & puVar17[iVar12 * 4 + 2]) == 10) {
    pbVar18 = *(byte **)(param_2 + 0x260);
    goto LAB_0003c81c;
  }
LAB_0003c8d8:
  iVar12 = 0;
  pbVar21 = pbVar13;
  if (pbVar13 == (byte *)0x0) goto LAB_0003c9a8;
  do {
    uVar10 = (uint)*pbVar13;
    pbVar16 = pbVar13 + 1;
    bVar3 = uVar10 < 0x110000;
    uVar6 = uVar10;
    pbVar22 = pbVar16;
    puVar11 = puVar17;
    if ((*pbVar13 & 0x80) != 0) {
      do {
        pbVar16 = pbVar22 + 1;
        puVar15 = puVar11 + 4;
        if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
           (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar16 == pbVar13 + 7))
        goto LAB_0003cb10;
        puVar1 = puVar11 + 5;
        bVar3 = (int)uVar6 < 0x110000;
        pbVar22 = pbVar16;
        puVar11 = puVar15;
      } while ((uVar10 & *puVar15) != *puVar1);
    }
    pbVar16 = pbVar16 + ~(uint)pbVar13;
    if ((int)(uVar6 & puVar17[(int)pbVar16 * 4 + 2]) < (int)puVar17[(int)pbVar16 * 4 + 3]) {
LAB_0003cb10:
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      pbVar16 = (byte *)0x1;
      *puVar7 = 0x58;
    }
    else {
      pbVar16 = pbVar16 + 1;
    }
    pbVar22 = pbVar18;
    if ((int)pbVar16 <= iVar12) break;
    while( true ) {
      bVar2 = *pbVar21;
      pbVar18 = pbVar22 + 1;
      pbVar21 = pbVar21 + 1;
      *pbVar22 = bVar2;
      iVar12 = (int)pbVar21 - (int)pbVar13;
      if (pbVar13 != (byte *)0x0) break;
LAB_0003c9a8:
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
      *puVar7 = 0x16;
      pbVar22 = pbVar18;
      if (0 < iVar12) goto LAB_0003c9d0;
    }
  } while( true );
LAB_0003c9d0:
  puVar5 = PTR_GetTypeMetrics_003a8eb0;
  *pbVar18 = 0;
  iVar12 = (*(code *)puVar5)(param_1,param_2,param_4,param_6);
  if (iVar12 == 0) {
LAB_0003cc70:
    iVar12 = 0;
    pbVar21 = (byte *)*param_5;
    goto LAB_0003cc80;
  }
  dVar23 = (double)(*(code *)PTR_floor_003a9670)
                             (*(double *)(param_4 + 0x20) + *(double *)(param_2 + 0x1b0) + dVar25);
  if (dVar23 < dVar24) {
    if (*(uint *)(param_1 + 0x18) < (uint)(int)dVar23) goto LAB_0003ca38;
  }
  else if (*(uint *)(param_1 + 0x18) < ((int)(dVar23 - dVar24) | 0x80000000U)) {
LAB_0003ca38:
    if (pbVar19 != (byte *)0x0) {
      pbVar21 = pbVar19;
      do {
        uVar10 = (uint)*pbVar19;
        bVar3 = uVar10 < 0x110000;
        uVar6 = uVar10;
        pbVar22 = pbVar19 + 1;
        puVar11 = puVar17;
        pbVar18 = pbVar19 + 1;
        if ((*pbVar19 & 0x80) != 0) {
          do {
            pbVar18 = pbVar22 + 1;
            puVar15 = puVar11 + 4;
            if ((((((int)(char)*pbVar22 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
               (uVar6 = ((int)(char)*pbVar22 ^ 0x80U) & 0xff | uVar6 << 6, pbVar19 + 7 == pbVar18))
            goto LAB_0003cbc0;
            puVar1 = puVar11 + 5;
            bVar3 = (int)uVar6 < 0x110000;
            pbVar22 = pbVar18;
            puVar11 = puVar15;
          } while ((uVar10 & *puVar15) != *puVar1);
        }
        pbVar18 = pbVar18 + ~(uint)pbVar19;
        if ((int)(uVar6 & puVar17[(int)pbVar18 * 4 + 2]) < (int)puVar17[(int)pbVar18 * 4 + 3]) {
LAB_0003cbc0:
          puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
          *puVar7 = 0x58;
          if (0 < (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;
        }
        else if ((int)(pbVar18 + 1) <= (int)pbVar21 - (int)pbVar19) goto LAB_0003cbe0;
        *pbVar21 = 0x20;
        pbVar21 = pbVar21 + 1;
      } while( true );
    }
    if (param_3 == 0) {
      if (pbVar13 == (byte *)0x0) {
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
        pbVar18 = *(byte **)(param_2 + 0x260);
        *puVar7 = 0x16;
        goto LAB_0003d0e4;
      }
      uVar10 = (uint)*pbVar13;
      pbVar21 = pbVar13 + 1;
      bVar3 = uVar10 < 0x110000;
      uVar6 = uVar10;
      puVar11 = puVar17;
      if ((*pbVar13 & 0x80) != 0) {
        do {
          puVar15 = puVar11 + 4;
          if ((((((int)(char)*pbVar21 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
             (uVar6 = ((int)(char)*pbVar21 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 + 6 == pbVar21))
          goto LAB_0003d050;
          pbVar21 = pbVar21 + 1;
          puVar1 = puVar11 + 5;
          bVar3 = (int)uVar6 < 0x110000;
          puVar11 = puVar15;
        } while ((*puVar15 & uVar10) != *puVar1);
      }
      pbVar21 = pbVar21 + ~(uint)pbVar13;
      if ((int)(uVar6 & puVar17[(int)pbVar21 * 4 + 2]) < (int)puVar17[(int)pbVar21 * 4 + 3]) {
LAB_0003d050:
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
        *puVar7 = 0x58;
      }
      else if ((byte *)0x2 < pbVar21 + 1) goto LAB_0003cc44;
    }
    else {
LAB_0003cc44:
      iVar12 = (int)pbVar13 - *param_5;
      if ((0 < iVar12) && (*(char *)(*param_5 + iVar12 + -1) != '\n')) {
        iVar8 = (*(code *)PTR_AcquireString_003a9814)();
        (*(code *)PTR_CopyMagickString_003a983c)(iVar8,*param_5,iVar12 + 1);
        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);
        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,puVar4 + -0x4bdc,iVar9 + 1);
        iVar9 = (*(code *)PTR_strlen_003a9338)(*param_5);
        (*(code *)PTR_ConcatenateMagickString_003a9898)(iVar8,pbVar13,iVar9 + 2);
        (*(code *)PTR_DestroyString_003a9074)(*param_5);
        pbVar13 = (byte *)(iVar8 + iVar12);
        *param_5 = iVar8;
      }
    }
LAB_0003cbe8:
    pbVar19 = (byte *)0x0;
    pbVar18 = *(byte **)(param_2 + 0x260);
  }
  if (pbVar13 != (byte *)0x0) goto code_r0x0003cbfc;
LAB_0003d0e4:
  puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
  *puVar7 = 0x16;
  pbVar21 = pbVar19;
  pbVar19 = (byte *)0x1;
  goto LAB_0003c5fc;
LAB_0003cc80:
  bVar3 = pbVar21 == (byte *)0x0;
  pbVar22 = pbVar21;
  pbVar21 = pbVar21 + 1;
  if (bVar3) {
    pbVar21 = (byte *)0x2;
    pbVar22 = (byte *)0x1;
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x16;
  }
  uVar10 = (uint)*pbVar22;
  uVar20 = ~(uint)pbVar22;
  pbVar13 = pbVar22 + 7;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  pbVar18 = pbVar21;
  if ((*pbVar22 & 0x80) != 0) {
    do {
      pbVar18 = pbVar19 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))
      goto LAB_0003ce64;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar19 = pbVar18;
      puVar11 = puVar15;
    } while (*puVar1 != (*puVar15 & uVar10));
  }
  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <
      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {
LAB_0003ce64:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    uVar10 = (uint)*pbVar22;
  }
  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 0) {
    return iVar12;
  }
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  pbVar18 = pbVar21;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar18 = pbVar19 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar19 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar19 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar18))
      goto LAB_0003ce80;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar19 = pbVar18;
      puVar11 = puVar15;
    } while (*puVar1 != (uVar10 & *puVar15));
  }
  if ((int)(uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) <
      (int)puVar17[(int)(pbVar18 + uVar20) * 4 + 3]) {
LAB_0003ce80:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
    uVar10 = (uint)*pbVar22;
  }
  else if ((uVar6 & puVar17[(int)(pbVar18 + uVar20) * 4 + 2]) == 10) {
    iVar12 = iVar12 + 1;
  }
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  pbVar18 = pbVar21;
  pbVar19 = pbVar21;
  puVar11 = puVar17;
  if ((uVar10 & 0x80) != 0) {
    do {
      pbVar19 = pbVar18 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar18 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar18 ^ 0x80U) & 0xff | uVar6 << 6, pbVar13 == pbVar19))
      goto LAB_0003ce9c;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      pbVar18 = pbVar19;
      puVar11 = puVar15;
    } while (*puVar1 != (*puVar15 & uVar10));
  }
  pbVar19 = pbVar19 + uVar20;
  if ((int)(uVar6 & puVar17[(int)pbVar19 * 4 + 2]) < (int)puVar17[(int)pbVar19 * 4 + 3]) {
LAB_0003ce9c:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else {
    pbVar21 = pbVar22 + (int)(pbVar19 + 1);
  }
  goto LAB_0003cc80;
LAB_0003cbe0:
  *pbVar19 = 10;
  pbVar13 = pbVar19;
  goto LAB_0003cbe8;
code_r0x0003cbfc:
  uVar10 = (uint)*pbVar13;
  pbVar22 = pbVar13 + 1;
LAB_0003c81c:
  iVar12 = 0;
  bVar3 = uVar10 < 0x110000;
  uVar6 = uVar10;
  puVar11 = puVar17;
  pbVar16 = pbVar22;
  pbVar21 = pbVar19;
  if ((uVar10 & 0x80) != 0) {
    do {
      iVar12 = iVar12 + 1;
      puVar15 = puVar11 + 4;
      if ((((((int)(char)*pbVar16 ^ 0x80U) & 0xc0) != 0) || (!bVar3)) ||
         (uVar6 = ((int)(char)*pbVar16 ^ 0x80U) & 0xff | uVar6 << 6, iVar12 == 6))
      goto LAB_0003cba4;
      puVar1 = puVar11 + 5;
      bVar3 = (int)uVar6 < 0x110000;
      puVar11 = puVar15;
      pbVar16 = pbVar16 + 1;
    } while ((*puVar15 & uVar10) != *puVar1);
  }
  if ((int)(uVar6 & puVar17[iVar12 * 4 + 2]) < (int)puVar17[iVar12 * 4 + 3]) {
LAB_0003cba4:
    puVar7 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
    *puVar7 = 0x58;
  }
  else {
    pbVar22 = pbVar13 + iVar12 + 1;
  }
  goto LAB_0003c5f4;
}

