
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

MagickBooleanType
sixel_decode(Image *image,uchar *p,uchar **pixels,size_t *pwidth,size_t *pheight,uchar **palette,
            size_t *ncolors,ExceptionInfo *exception)

{
  byte *pbVar1;
  uchar uVar2;
  byte bVar3;
  long lVar4;
  uint uVar5;
  MagickBooleanType MVar6;
  int iVar7;
  uint uVar8;
  long lVar9;
  uchar *puVar10;
  ulong uVar11;
  long lVar12;
  ulong uVar13;
  int iVar14;
  size_t __n;
  int iVar15;
  long lVar16;
  ulong uVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  uint uVar21;
  size_t sVar22;
  uint uVar23;
  size_t sVar24;
  uint uVar25;
  long in_FS_OFFSET;
  bool bVar26;
  uchar *local_550;
  uint local_52c;
  int local_520;
  int local_51c;
  uint local_518;
  uint local_514;
  int local_4c8;
  int local_4c4;
  int local_4bc;
  int local_4a0;
  int n;
  int param [10];
  int sixel_palet [256];
  
  lVar4 = *(long *)(in_FS_OFFSET + 0x28);
  param[0] = 0;
  param[1] = 0;
  param[2] = 0;
  param[3] = 0;
  param[4] = 0;
  param[5] = 0;
  param[6] = 0;
  param[7] = 0;
  param[8] = 0;
  param[9] = 0;
  uVar13 = 0xffffffffffffffff;
  puVar10 = p;
  do {
    if (uVar13 == 0) break;
    uVar13 = uVar13 - 1;
    uVar2 = *puVar10;
    puVar10 = puVar10 + 1;
  } while (uVar2 != '\0');
  MVar6 = SetImageExtent(image,0x800,0x800,exception);
  if (MVar6 != MagickFalse) {
    local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);
    MVar6 = MagickFalse;
    if (local_550 != (uchar *)0x0) {
      lVar9 = 0;
      do {
        *(undefined4 *)((long)sixel_palet + lVar9) =
             *(undefined4 *)((long)sixel_default_color_table + lVar9);
        lVar9 = lVar9 + 4;
      } while (lVar9 != 0x40);
      iVar20 = 0;
      iVar19 = 0x34;
      do {
        iVar18 = iVar19 + -0x24;
        iVar15 = iVar20;
        do {
          iVar7 = iVar15;
          iVar14 = iVar18;
          do {
            sixel_palet[iVar14] = iVar7;
            iVar14 = iVar14 + 1;
            iVar7 = iVar7 + 0x33;
          } while (iVar7 != iVar15 + 0x132);
          iVar18 = iVar18 + 6;
          iVar15 = iVar15 + 0x3300;
        } while (iVar18 != iVar19);
        iVar19 = iVar19 + 0x24;
        iVar20 = iVar20 + 0x330000;
      } while (iVar20 != 0x1320000);
      iVar19 = 0;
      iVar20 = 0xe8;
      do {
        sixel_palet[iVar20] = iVar19;
        iVar20 = iVar20 + 1;
        iVar19 = iVar19 + 0xb0b0b;
      } while (iVar19 != 0x1090908);
      n = 0x100;
      memset(local_550,0,0x400000);
      local_52c = 0x800;
      local_4c4 = 2;
      local_51c = 0;
      local_520 = 1;
      local_514 = 0;
      local_518 = 0;
      local_4bc = 0;
      local_4a0 = 0;
      local_4c8 = 0;
      iVar19 = 0;
      uVar23 = 0x800;
LAB_003c9c9d:
      while( true ) {
        bVar3 = *p;
        if (bVar3 == 0) goto LAB_003ca670;
        if (bVar3 != 0x1b) break;
        if (p[1] == 0x50) {
          p = p + 1;
LAB_003c9c82:
          p = get_params(p + 1,param,&n);
          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {
            param[2] = 10;
          }
        }
        else {
          if (p[1] == 0x5c) goto LAB_003ca670;
LAB_003c9c26:
          if ((byte)(bVar3 - 0x3f) < 0x41) {
            iVar20 = iVar19 + local_520;
            uVar8 = uVar23;
            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {
              uVar25 = local_52c;
              do {
                do {
                  uVar8 = uVar8 * 2;
                  uVar25 = uVar25 * 2;
                } while ((int)uVar25 < iVar20);
              } while ((int)uVar8 < local_4c8 + 6);
              sVar22 = (size_t)(int)uVar8;
              sVar24 = (size_t)(int)uVar25;
              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);
              if (MVar6 == MagickFalse) goto LAB_003ca670;
              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);
              if (puVar10 == (uchar *)0x0) {
                RelinquishMagickMemory(local_550);
                MVar6 = MagickFalse;
                goto LAB_003c9a8e;
              }
              memset(puVar10,0,sVar22 * sVar24);
              if (0 < (int)uVar23) {
                iVar18 = 0;
                iVar15 = 0;
                uVar21 = 0;
                do {
                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);
                  uVar21 = uVar21 + 1;
                  iVar15 = iVar15 + local_52c;
                  iVar18 = iVar18 + uVar25;
                } while (uVar23 != uVar21);
              }
              RelinquishMagickMemory(local_550);
              local_550 = puVar10;
              local_52c = uVar25;
            }
            if (local_4c4 < local_51c) {
              local_4c4 = local_51c;
            }
            pbVar1 = p + 1;
            uVar25 = *p - 0x3f;
            p = pbVar1;
            uVar23 = uVar8;
            if (uVar25 == 0) {
              local_520 = 1;
              iVar19 = iVar20;
            }
            else if (local_520 < 2) {
              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;
              lVar9 = 0;
              uVar8 = 1;
              do {
                if ((uVar25 & uVar8) != 0) {
                  iVar20 = local_4c8 + (int)lVar9;
                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;
                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {
                    RelinquishMagickMemory(local_550);
                    MVar6 = MagickFalse;
                    goto LAB_003c9a8e;
                  }
                  local_550[uVar11] = (uchar)local_51c;
                  if (local_4a0 < iVar19) {
                    local_4a0 = iVar19;
                  }
                  if (local_4bc < iVar20) {
                    local_4bc = iVar20;
                  }
                }
                uVar8 = uVar8 * 2;
                lVar9 = lVar9 + 1;
              } while (lVar9 != 6);
              local_520 = 1;
              iVar19 = iVar19 + 1;
            }
            else {
              lVar9 = (long)(int)local_52c;
              uVar21 = 1;
              iVar15 = 0;
              __n = (size_t)local_520;
              do {
                if ((uVar21 & uVar25) != 0) {
                  n = 1;
                  if (iVar15 + 1 < 6) {
                    uVar5 = uVar21;
                    for (iVar18 = 2;
                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&
                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {
                    }
                  }
                  iVar7 = n;
                  iVar18 = local_4c8 + iVar15;
                  iVar14 = iVar18 + n;
                  if (iVar18 < iVar14) {
                    lVar12 = iVar18 * lVar9 + (long)iVar19;
                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {
LAB_003ca553:
                      RelinquishMagickMemory(local_550);
                      MVar6 = MagickFalse;
                      goto LAB_003c9a8e;
                    }
                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;
                    while( true ) {
                      memset(local_550 + lVar12,local_51c,__n);
                      iVar18 = iVar18 + 1;
                      if (iVar18 == iVar14) break;
                      lVar12 = uVar17 - __n;
                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;
                      uVar17 = uVar17 + lVar9;
                      if (bVar26) goto LAB_003ca553;
                    }
                  }
                  if (local_4a0 < iVar20 + -1) {
                    local_4a0 = iVar20 + -1;
                  }
                  iVar18 = iVar14 + -1;
                  if (iVar14 + -1 <= local_4bc) {
                    iVar18 = local_4bc;
                  }
                  iVar15 = iVar15 + iVar7 + -1;
                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);
                  local_4bc = iVar18;
                }
                uVar21 = uVar21 << 1;
                iVar15 = iVar15 + 1;
              } while (iVar15 < 6);
              local_520 = 1;
              iVar19 = iVar20;
            }
          }
          else {
            p = p + 1;
          }
        }
      }
      if (bVar3 == 0x90) goto LAB_003c9c82;
      if (bVar3 == 0x9c) goto LAB_003ca670;
      if (bVar3 == 0x22) {
        p = get_params(p + 1,param,&n);
        uVar8 = local_518;
        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {
          uVar8 = local_518;
        }
        local_518 = uVar8;
        uVar8 = local_514;
        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {
          uVar8 = local_514;
        }
        local_514 = uVar8;
        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {
          uVar8 = local_52c;
          if ((int)local_52c <= (int)local_518) {
            uVar8 = local_518;
          }
          uVar25 = uVar23;
          if ((int)uVar23 <= (int)local_514) {
            uVar25 = local_514;
          }
          sVar22 = (size_t)(int)uVar25;
          sVar24 = (size_t)(int)uVar8;
          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);
          if (MVar6 == MagickFalse) goto LAB_003ca670;
          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);
          if (puVar10 == (uchar *)0x0) {
            RelinquishMagickMemory(local_550);
            MVar6 = MagickFalse;
            goto LAB_003c9a8e;
          }
          memset(puVar10,0,sVar22 * sVar24);
          if (0 < (int)uVar23) {
            iVar15 = 0;
            iVar20 = 0;
            uVar21 = 0;
            do {
              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);
              uVar21 = uVar21 + 1;
              iVar20 = iVar20 + local_52c;
              iVar15 = iVar15 + uVar8;
            } while (uVar23 != uVar21);
          }
          RelinquishMagickMemory(local_550);
          local_550 = puVar10;
          local_52c = uVar8;
          uVar23 = uVar25;
        }
        goto LAB_003c9c9d;
      }
      if (bVar3 != 0x21) {
        if (bVar3 == 0x23) {
          p = get_params(p + 1,param,&n);
          if (0 < n) {
            iVar20 = 0xff;
            if (param[0] < 0x100) {
              iVar20 = param[0];
            }
            local_51c = 0;
            if (-1 < iVar20) {
              local_51c = iVar20;
            }
          }
          if (4 < n) {
            if (param[1] == 1) {
              if (0x168 < param[2]) {
                param[2] = 0x168;
              }
              if (100 < param[3]) {
                param[3] = 100;
              }
              if (param[4] < 0x65) {
                if (param[4] != 0) {
                  iVar20 = (int)(((long)param[2] * 100) / 0x168);
                  iVar15 = param[4];
                  goto LAB_003ca0ae;
                }
                iVar15 = (param[3] * 0xff) / 100;
                iVar18 = iVar15;
                iVar20 = iVar15;
              }
              else {
                param[4] = 100;
                iVar20 = (int)(((long)param[2] * 100) / 0x168);
                iVar15 = 100;
LAB_003ca0ae:
                if (param[3] < 0x33) {
                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;
                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>
                                6) - (int)(lVar9 >> 0x3f);
                }
                else {
                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;
                  iVar18 = (param[3] + iVar15) -
                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>
                                 6) - (int)(lVar9 >> 0x3f));
                }
                iVar14 = param[3] * 2 - iVar18;
                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);
                iVar15 = (iVar15 * 0xff + 0x32) / 100;
                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);
                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);
                iVar18 = (iVar20 * 0xff + 0x32) / 100;
                iVar20 = (iVar7 * 0xff + 0x32) / 100;
              }
              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;
            }
            else if (param[1] == 2) {
              if (100 < param[2]) {
                param[2] = 100;
              }
              if (100 < param[3]) {
                param[3] = 100;
              }
              if (100 < param[4]) {
                param[4] = 100;
              }
              lVar9 = (long)param[2] * 0xff + 0x32;
              lVar12 = (long)param[4] * 0xff + 0x32;
              lVar16 = (long)param[3] * 0xff + 0x32;
              sixel_palet[local_51c] =
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -
                   (int)(lVar9 >> 0x3f)) * 0x10000 +
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -
                   (int)(lVar12 >> 0x3f)) +
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -
                   (int)(lVar16 >> 0x3f)) * 0x100;
            }
          }
        }
        else if (bVar3 == 0x24) {
          local_520 = 1;
          p = p + 1;
          iVar19 = 0;
        }
        else {
          if (bVar3 != 0x2d) goto LAB_003c9c26;
          local_4c8 = local_4c8 + 6;
          local_520 = 1;
          p = p + 1;
          iVar19 = 0;
        }
        goto LAB_003c9c9d;
      }
      p = get_params(p + 1,param,&n);
      if (n < 1) goto LAB_003c9c9d;
      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))
      goto LAB_003c9c9d;
LAB_003ca670:
      uVar8 = local_4a0 + 1U;
      if ((int)(local_4a0 + 1U) <= (int)local_518) {
        uVar8 = local_518;
      }
      uVar25 = local_4bc + 1U;
      if ((int)(local_4bc + 1U) <= (int)local_514) {
        uVar25 = local_514;
      }
      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {
        sVar22 = (size_t)(int)uVar8;
        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);
        if (MVar6 == MagickFalse) {
          RelinquishMagickMemory(local_550);
          MVar6 = MagickFalse;
          goto LAB_003c9a8e;
        }
        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);
        if (puVar10 == (uchar *)0x0) {
          RelinquishMagickMemory(local_550);
          MVar6 = MagickFalse;
          goto LAB_003c9a8e;
        }
        if (0 < (int)uVar25) {
          iVar19 = 0;
          iVar20 = 0;
          uVar23 = 0;
          do {
            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);
            uVar23 = uVar23 + 1;
            iVar20 = iVar20 + local_52c;
            iVar19 = iVar19 + uVar8;
          } while (uVar25 != uVar23);
        }
        RelinquishMagickMemory(local_550);
        local_550 = puVar10;
        local_52c = uVar8;
        uVar23 = uVar25;
      }
      *pixels = local_550;
      *pwidth = (long)(int)local_52c;
      *pheight = (long)(int)uVar23;
      *ncolors = (long)(local_4c4 + 1);
      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);
      *palette = puVar10;
      MVar6 = MagickFalse;
      if (puVar10 != (uchar *)0x0) {
        n = 0;
        if ((long)*ncolors < 1) {
          MVar6 = MagickTrue;
        }
        else {
          do {
            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);
            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);
            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];
            (*palette)[(long)(n << 2) + 3] = 0xff;
            n = n + 1;
          } while ((long)n < (long)*ncolors);
          MVar6 = MagickTrue;
        }
      }
    }
  }
LAB_003c9a8e:
  if (lVar4 == *(long *)(in_FS_OFFSET + 0x28)) {
    return MVar6;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,
                long *param_6,long *param_7,undefined8 param_8)

{
  byte bVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  long lVar6;
  void *pvVar7;
  ulong uVar8;
  ulong uVar9;
  int iVar10;
  size_t sVar11;
  int iVar12;
  byte *pbVar13;
  long lVar14;
  ulong uVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  long lVar20;
  uint uVar21;
  long in_FS_OFFSET;
  bool bVar22;
  void *local_550;
  uint local_52c;
  int local_520;
  int local_51c;
  uint local_518;
  uint local_514;
  int local_4c8;
  int local_4c4;
  int local_4bc;
  int local_4a0;
  int local_47c;
  undefined8 local_478;
  uint local_470;
  uint uStack_46c;
  undefined8 local_468;
  undefined8 local_460;
  undefined8 local_458;
  undefined4 uStack_448;
  int aiStack_a8 [26];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_478 = 0;
  local_470 = 0;
  uStack_46c = 0;
  local_468 = 0;
  local_460 = 0;
  local_458 = 0;
  uVar9 = 0xffffffffffffffff;
  pbVar13 = param_2;
  do {
    if (uVar9 == 0) break;
    uVar9 = uVar9 - 1;
    bVar1 = *pbVar13;
    pbVar13 = pbVar13 + 1;
  } while (bVar1 != 0);
  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);
  if (iVar3 != 0) {
    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);
    iVar3 = 0;
    if (local_550 != (void *)0x0) {
      lVar6 = 0;
      do {
        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);
        lVar6 = lVar6 + 4;
      } while (lVar6 != 0x40);
      iVar17 = 0;
      iVar3 = 0x34;
      do {
        iVar16 = iVar3 + -0x24;
        iVar12 = iVar17;
        do {
          iVar4 = iVar12;
          iVar10 = iVar16;
          do {
            (&uStack_448)[iVar10] = iVar4;
            iVar10 = iVar10 + 1;
            iVar4 = iVar4 + 0x33;
          } while (iVar4 != iVar12 + 0x132);
          iVar16 = iVar16 + 6;
          iVar12 = iVar12 + 0x3300;
        } while (iVar16 != iVar3);
        iVar3 = iVar3 + 0x24;
        iVar17 = iVar17 + 0x330000;
      } while (iVar17 != 0x1320000);
      iVar3 = 0;
      iVar17 = 0xe8;
      do {
        (&uStack_448)[iVar17] = iVar3;
        iVar17 = iVar17 + 1;
        iVar3 = iVar3 + 0xb0b0b;
      } while (iVar3 != 0x1090908);
      local_47c = 0x100;
      memset(local_550,0,0x400000);
      local_52c = 0x800;
      local_4c4 = 2;
      local_51c = 0;
      local_520 = 1;
      local_514 = 0;
      local_518 = 0;
      local_4bc = 0;
      local_4a0 = 0;
      local_4c8 = 0;
      iVar3 = 0;
      uVar19 = 0x800;
LAB_003c9c9d:
      while( true ) {
        bVar1 = *param_2;
        if (bVar1 == 0) goto LAB_003ca670;
        if (bVar1 != 0x1b) break;
        if (param_2[1] == 0x50) {
          param_2 = param_2 + 1;
LAB_003c9c82:
          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {
            local_470 = 10;
          }
        }
        else {
          if (param_2[1] == 0x5c) goto LAB_003ca670;
LAB_003c9c26:
          if ((byte)(bVar1 - 0x3f) < 0x41) {
            iVar17 = iVar3 + local_520;
            uVar5 = uVar19;
            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {
              uVar21 = local_52c;
              do {
                do {
                  uVar5 = uVar5 * 2;
                  uVar21 = uVar21 * 2;
                } while ((int)uVar21 < iVar17);
              } while ((int)uVar5 < local_4c8 + 6);
              lVar6 = (long)(int)uVar5;
              lVar20 = (long)(int)uVar21;
              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);
              if (iVar12 == 0) goto LAB_003ca670;
              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);
              if (pvVar7 == (void *)0x0) {
                RelinquishMagickMemory(local_550);
                iVar3 = 0;
                goto LAB_003c9a8e;
              }
              memset(pvVar7,0,lVar6 * lVar20);
              if (0 < (int)uVar19) {
                iVar16 = 0;
                iVar12 = 0;
                uVar18 = 0;
                do {
                  memcpy((void *)((long)iVar16 + (long)pvVar7),
                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);
                  uVar18 = uVar18 + 1;
                  iVar12 = iVar12 + local_52c;
                  iVar16 = iVar16 + uVar21;
                } while (uVar19 != uVar18);
              }
              RelinquishMagickMemory(local_550);
              local_550 = pvVar7;
              local_52c = uVar21;
            }
            if (local_4c4 < local_51c) {
              local_4c4 = local_51c;
            }
            pbVar13 = param_2 + 1;
            uVar21 = *param_2 - 0x3f;
            param_2 = pbVar13;
            uVar19 = uVar5;
            if (uVar21 == 0) {
              local_520 = 1;
              iVar3 = iVar17;
            }
            else if (local_520 < 2) {
              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;
              lVar6 = 0;
              uVar5 = 1;
              do {
                if ((uVar21 & uVar5) != 0) {
                  iVar17 = local_4c8 + (int)lVar6;
                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;
                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {
                    RelinquishMagickMemory(local_550);
                    iVar3 = 0;
                    goto LAB_003c9a8e;
                  }
                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;
                  if (local_4a0 < iVar3) {
                    local_4a0 = iVar3;
                  }
                  if (local_4bc < iVar17) {
                    local_4bc = iVar17;
                  }
                }
                uVar5 = uVar5 * 2;
                lVar6 = lVar6 + 1;
              } while (lVar6 != 6);
              local_520 = 1;
              iVar3 = iVar3 + 1;
            }
            else {
              lVar6 = (long)(int)local_52c;
              uVar18 = 1;
              iVar12 = 0;
              sVar11 = (size_t)local_520;
              do {
                if ((uVar18 & uVar21) != 0) {
                  local_47c = 1;
                  if (iVar12 + 1 < 6) {
                    uVar2 = uVar18;
                    for (iVar16 = 2;
                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&
                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {
                    }
                  }
                  iVar4 = local_47c;
                  iVar16 = local_4c8 + iVar12;
                  iVar10 = iVar16 + local_47c;
                  if (iVar16 < iVar10) {
                    lVar20 = iVar16 * lVar6 + (long)iVar3;
                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {
LAB_003ca553:
                      RelinquishMagickMemory(local_550);
                      iVar3 = 0;
                      goto LAB_003c9a8e;
                    }
                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;
                    while( true ) {
                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);
                      iVar16 = iVar16 + 1;
                      if (iVar16 == iVar10) break;
                      lVar20 = uVar15 - sVar11;
                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;
                      uVar15 = uVar15 + lVar6;
                      if (bVar22) goto LAB_003ca553;
                    }
                  }
                  if (local_4a0 < iVar17 + -1) {
                    local_4a0 = iVar17 + -1;
                  }
                  iVar16 = iVar10 + -1;
                  if (iVar10 + -1 <= local_4bc) {
                    iVar16 = local_4bc;
                  }
                  iVar12 = iVar12 + iVar4 + -1;
                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);
                  local_4bc = iVar16;
                }
                uVar18 = uVar18 << 1;
                iVar12 = iVar12 + 1;
              } while (iVar12 < 6);
              local_520 = 1;
              iVar3 = iVar17;
            }
          }
          else {
            param_2 = param_2 + 1;
          }
        }
      }
      if (bVar1 == 0x90) goto LAB_003c9c82;
      if (bVar1 == 0x9c) goto LAB_003ca670;
      if (bVar1 == 0x22) {
        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
        uVar5 = local_518;
        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {
          uVar5 = local_518;
        }
        local_518 = uVar5;
        uVar5 = local_514;
        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {
          uVar5 = local_514;
        }
        local_514 = uVar5;
        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {
          uVar5 = local_52c;
          if ((int)local_52c <= (int)local_518) {
            uVar5 = local_518;
          }
          uVar21 = uVar19;
          if ((int)uVar19 <= (int)local_514) {
            uVar21 = local_514;
          }
          lVar6 = (long)(int)uVar21;
          lVar20 = (long)(int)uVar5;
          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);
          if (iVar17 == 0) goto LAB_003ca670;
          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);
          if (pvVar7 == (void *)0x0) {
            RelinquishMagickMemory(local_550);
            iVar3 = 0;
            goto LAB_003c9a8e;
          }
          memset(pvVar7,0,lVar6 * lVar20);
          if (0 < (int)uVar19) {
            iVar12 = 0;
            iVar17 = 0;
            uVar18 = 0;
            do {
              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),
                     (long)(int)local_52c);
              uVar18 = uVar18 + 1;
              iVar17 = iVar17 + local_52c;
              iVar12 = iVar12 + uVar5;
            } while (uVar19 != uVar18);
          }
          RelinquishMagickMemory(local_550);
          local_550 = pvVar7;
          local_52c = uVar5;
          uVar19 = uVar21;
        }
        goto LAB_003c9c9d;
      }
      if (bVar1 != 0x21) {
        if (bVar1 == 0x23) {
          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
          if (0 < local_47c) {
            iVar17 = 0xff;
            if ((int)local_478 < 0x100) {
              iVar17 = (int)local_478;
            }
            local_51c = 0;
            if (-1 < iVar17) {
              local_51c = iVar17;
            }
          }
          if (4 < local_47c) {
            if (local_478._4_4_ == 1) {
              if (0x168 < (int)local_470) {
                local_470 = 0x168;
              }
              if (100 < (int)uStack_46c) {
                uStack_46c = 100;
              }
              if ((int)local_468 < 0x65) {
                if ((int)local_468 != 0) {
                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);
                  iVar12 = (int)local_468;
                  goto LAB_003ca0ae;
                }
                iVar12 = (int)(uStack_46c * 0xff) / 100;
                iVar16 = iVar12;
                iVar17 = iVar12;
              }
              else {
                local_468 = CONCAT44(local_468._4_4_,100);
                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);
                iVar12 = 100;
LAB_003ca0ae:
                if ((int)uStack_46c < 0x33) {
                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;
                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>
                                6) - (int)(lVar6 >> 0x3f);
                }
                else {
                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;
                  iVar16 = (uStack_46c + iVar12) -
                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>
                                 6) - (int)(lVar6 >> 0x3f));
                }
                iVar10 = uStack_46c * 2 - iVar16;
                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);
                iVar12 = (iVar12 * 0xff + 0x32) / 100;
                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);
                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);
                iVar16 = (iVar17 * 0xff + 0x32) / 100;
                iVar17 = (iVar4 * 0xff + 0x32) / 100;
              }
              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;
            }
            else if (local_478._4_4_ == 2) {
              if (100 < (int)local_470) {
                local_470 = 100;
              }
              if (100 < (int)uStack_46c) {
                uStack_46c = 100;
              }
              if (100 < (int)local_468) {
                local_468 = CONCAT44(local_468._4_4_,100);
              }
              lVar6 = (long)(int)local_470 * 0xff + 0x32;
              lVar20 = (long)(int)local_468 * 0xff + 0x32;
              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;
              (&uStack_448)[local_51c] =
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -
                   (int)(lVar6 >> 0x3f)) * 0x10000 +
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -
                   (int)(lVar20 >> 0x3f)) +
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -
                   (int)(lVar14 >> 0x3f)) * 0x100;
            }
          }
        }
        else if (bVar1 == 0x24) {
          local_520 = 1;
          param_2 = param_2 + 1;
          iVar3 = 0;
        }
        else {
          if (bVar1 != 0x2d) goto LAB_003c9c26;
          local_4c8 = local_4c8 + 6;
          local_520 = 1;
          param_2 = param_2 + 1;
          iVar3 = 0;
        }
        goto LAB_003c9c9d;
      }
      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
      if (local_47c < 1) goto LAB_003c9c9d;
      if (((int)local_478 < 1) ||
         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))
      goto LAB_003c9c9d;
LAB_003ca670:
      uVar5 = local_4a0 + 1U;
      if ((int)(local_4a0 + 1U) <= (int)local_518) {
        uVar5 = local_518;
      }
      uVar21 = local_4bc + 1U;
      if ((int)(local_4bc + 1U) <= (int)local_514) {
        uVar21 = local_514;
      }
      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {
        sVar11 = (size_t)(int)uVar5;
        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);
        if (iVar3 == 0) {
          RelinquishMagickMemory(local_550);
          iVar3 = 0;
          goto LAB_003c9a8e;
        }
        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);
        if (pvVar7 == (void *)0x0) {
          RelinquishMagickMemory(local_550);
          iVar3 = 0;
          goto LAB_003c9a8e;
        }
        if (0 < (int)uVar21) {
          iVar3 = 0;
          iVar17 = 0;
          uVar19 = 0;
          do {
            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),
                   sVar11);
            uVar19 = uVar19 + 1;
            iVar17 = iVar17 + local_52c;
            iVar3 = iVar3 + uVar5;
          } while (uVar21 != uVar19);
        }
        RelinquishMagickMemory(local_550);
        local_550 = pvVar7;
        local_52c = uVar5;
        uVar19 = uVar21;
      }
      *param_3 = local_550;
      *param_4 = (long)(int)local_52c;
      *param_5 = (long)(int)uVar19;
      *param_7 = (long)(local_4c4 + 1);
      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);
      *param_6 = lVar6;
      iVar3 = 0;
      if (lVar6 != 0) {
        local_47c = 0;
        if (*param_7 < 1) {
          iVar3 = 1;
        }
        else {
          do {
            *(char *)(*param_6 + (long)(local_47c * 4)) =
                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);
            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =
                 (char)((uint)(&uStack_448)[local_47c] >> 8);
            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];
            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;
            local_47c = local_47c + 1;
          } while ((long)local_47c < *param_7);
          iVar3 = 1;
        }
      }
    }
  }
LAB_003c9a8e:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x528
MOV R15,RDI
MOV qword ptr [RSP + 0x50],RDI
MOV R14,RSI
MOV qword ptr [RSP + 0x68],RDX
MOV qword ptr [RSP + 0x70],RCX
MOV qword ptr [RSP + 0x78],R8
MOV qword ptr [RSP + 0x80],R9
MOV RAX,qword ptr [RSP + 0x560]
MOV qword ptr [RSP + 0x88],RAX
MOV RBX,qword ptr [RSP + 0x568]
MOV qword ptr [RSP + 0x58],RBX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x518],RAX
XOR EAX,EAX
MOV qword ptr [RSP + 0xe0],0x0
MOV qword ptr [RSP + 0xe8],0x0
MOV qword ptr [RSP + 0xf0],0x0
MOV qword ptr [RSP + 0xf8],0x0
MOV qword ptr [RSP + 0x100],0x0
MOV RCX,-0x1
MOV RDI,RSI
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
SUB RAX,0x1
MOV qword ptr [RSP + 0x60],RAX
MOV RCX,RBX
MOV EDX,0x800
MOV ESI,0x800
MOV RDI,R15
CALL 0x0014b140
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x003c9ab9
MOV EAX,EBX
MOV RBX,qword ptr [RSP + 0x518]
XOR RBX,qword ptr FS:[0x28]
JNZ 0x003ca89d
ADD RSP,0x528
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ESI,0x800
MOV EDI,0x800
CALL 0x0014af40
MOV qword ptr [RSP + 0x8],RAX
MOV EBX,0x0
TEST RAX,RAX
JZ 0x003c9a8e
MOV EAX,0x0
LEA RCX,[0x47bf80]
MOV EDX,dword ptr [RCX + RAX*0x1]
MOV dword ptr [RSP + RAX*0x1 + 0x110],EDX
ADD RAX,0x4
CMP RAX,0x40
JNZ 0x003c9ae3
MOV R11D,0x0
MOV R10D,0x34
LEA R8D,[R10 + -0x24]
MOV R9D,R10D
MOV EDI,R11D
MOV EDX,R8D
LEA ESI,[RDI + 0x132]
MOV EAX,EDI
MOVSXD RCX,EDX
MOV dword ptr [RSP + RCX*0x4 + 0x110],EAX
ADD EDX,0x1
ADD EAX,0x33
CMP EAX,ESI
JNZ 0x003c9b18
ADD R8D,0x6
ADD EDI,0x3300
CMP R8D,R9D
JNZ 0x003c9b0d
ADD R10D,0x24
ADD R11D,0x330000
CMP R11D,0x1320000
JNZ 0x003c9b03
MOV EAX,0x0
MOV EDX,0xe8
MOVSXD RCX,EDX
MOV dword ptr [RSP + RCX*0x4 + 0x110],EAX
ADD EDX,0x1
ADD EAX,0xb0b0b
CMP EAX,0x1090908
JNZ 0x003c9b59
MOV dword ptr [RSP + 0xdc],0x100
MOV EDX,0x400000
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00149d30
MOV dword ptr [RSP + 0x20],0x800
MOV dword ptr [RSP + 0x2c],0x800
MOV dword ptr [RSP + 0x94],0x2
MOV dword ptr [RSP + 0x3c],0x0
MOV dword ptr [RSP + 0x38],0x1
MOV dword ptr [RSP + 0x44],0x0
MOV dword ptr [RSP + 0x40],0x0
MOV dword ptr [RSP + 0x9c],0x0
MOV dword ptr [RSP + 0xb8],0x0
MOV dword ptr [RSP + 0x90],0x0
MOV dword ptr [RSP + 0x30],0x0
LEA RAX,[RSP + 0xdc]
MOV qword ptr [RSP + 0x10],RAX
LEA RAX,[RSP + 0xe0]
MOV qword ptr [RSP + 0x18],RAX
JMP 0x003c9c9d
CMP byte ptr [R14 + 0x1],0x50
JZ 0x003c9c7e
CMP byte ptr [R14 + 0x1],0x5c
JZ 0x003ca670
SUB EAX,0x3f
CMP AL,0x40
JA 0x003ca647
MOV EAX,dword ptr [RSP + 0x30]
ADD EAX,dword ptr [RSP + 0x38]
MOV dword ptr [RSP + 0x98],EAX
CMP EAX,dword ptr [RSP + 0x2c]
JG 0x003c9c5a
MOV EAX,dword ptr [RSP + 0x90]
ADD EAX,0x6
CMP EAX,dword ptr [RSP + 0x20]
JLE 0x003ca326
MOV EAX,dword ptr [RSP + 0x2c]
LEA EBX,[RAX + RAX*0x1]
MOV EAX,dword ptr [RSP + 0x20]
LEA EBP,[RAX + RAX*0x1]
MOV EAX,dword ptr [RSP + 0x90]
ADD EAX,0x6
MOV EDX,dword ptr [RSP + 0x98]
JMP 0x003ca234
ADD R14,0x1
LEA RDI,[R14 + 0x1]
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x003c96bf
MOV R14,RAX
CMP byte ptr [RAX],0x71
JZ 0x003c9cef
MOVZX EAX,byte ptr [R14]
TEST AL,AL
JZ 0x003ca670
CMP AL,0x1b
JZ 0x003c9c14
CMP AL,0x90
JZ 0x003c9c82
CMP AL,0x9c
JZ 0x003ca670
CMP AL,0x22
JZ 0x003c9d14
CMP AL,0x21
JZ 0x003c9e88
CMP AL,0x23
JZ 0x003c9ed2
CMP AL,0x24
JNZ 0x003ca207
ADD R14,0x1
MOV dword ptr [RSP + 0x38],0x1
MOV dword ptr [RSP + 0x30],0x0
JMP 0x003c9c9d
ADD R14,0x1
CMP dword ptr [RSP + 0xdc],0x2
JLE 0x003c9c9d
CMP dword ptr [RSP + 0xe8],0x0
JNZ 0x003c9c9d
MOV dword ptr [RSP + 0xe8],0xa
JMP 0x003c9c9d
LEA RDI,[R14 + 0x1]
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x003c96bf
MOV R14,RAX
MOV EAX,dword ptr [RSP + 0xdc]
CMP EAX,0x2
JLE 0x003c9d4b
MOV EDX,dword ptr [RSP + 0xe8]
MOVZX ECX,DX
TEST EDX,EDX
CMOVLE ECX,dword ptr [RSP + 0x40]
MOV dword ptr [RSP + 0x40],ECX
CMP EAX,0x3
JLE 0x003c9d65
MOV EAX,dword ptr [RSP + 0xec]
MOVZX EDX,AX
TEST EAX,EAX
CMOVLE EDX,dword ptr [RSP + 0x44]
MOV dword ptr [RSP + 0x44],EDX
MOV EBX,dword ptr [RSP + 0x2c]
CMP dword ptr [RSP + 0x40],EBX
JG 0x003c9d7d
MOV EBX,dword ptr [RSP + 0x20]
CMP dword ptr [RSP + 0x44],EBX
JLE 0x003c9c9d
MOV EBX,dword ptr [RSP + 0x40]
MOV EAX,dword ptr [RSP + 0x2c]
CMP EBX,EAX
CMOVGE EAX,EBX
MOV dword ptr [RSP + 0x48],EAX
MOV ESI,dword ptr [RSP + 0x44]
MOV EBX,dword ptr [RSP + 0x20]
CMP ESI,EBX
CMOVGE EBX,ESI
MOV dword ptr [RSP + 0x98],EBX
MOVSXD RBX,EBX
MOVSXD RBP,EAX
MOV RCX,qword ptr [RSP + 0x58]
MOV RDX,RBX
MOV RSI,RBP
MOV RDI,qword ptr [RSP + 0x50]
CALL 0x0014b140
TEST EAX,EAX
JZ 0x003ca670
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0014af40
MOV R15,RAX
TEST RAX,RAX
JZ 0x003c9e74
IMUL RBX,RBP
MOV RDX,RBX
MOV ESI,0x0
MOV RDI,RAX
CALL 0x00149d30
CMP dword ptr [RSP + 0x20],0x0
JLE 0x003c9e4d
MOV EAX,dword ptr [RSP + 0x2c]
MOV ESI,dword ptr [RSP + 0x48]
MOV R13D,0x0
MOV R12D,0x0
MOV EBP,0x0
MOVSXD RBX,EAX
MOV qword ptr [RSP + 0xa0],R14
MOV R14D,ESI
MOVSXD RDI,R13D
ADD RDI,R15
MOVSXD RSI,R12D
ADD RSI,qword ptr [RSP + 0x8]
MOV RDX,RBX
CALL 0x0014d710
ADD EBP,0x1
ADD R12D,dword ptr [RSP + 0x2c]
ADD R13D,R14D
CMP dword ptr [RSP + 0x20],EBP
JNZ 0x003c9e1e
MOV R14,qword ptr [RSP + 0xa0]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV EAX,dword ptr [RSP + 0x98]
MOV dword ptr [RSP + 0x20],EAX
MOV EAX,dword ptr [RSP + 0x48]
MOV dword ptr [RSP + 0x2c],EAX
MOV qword ptr [RSP + 0x8],R15
JMP 0x003c9c9d
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV EBX,0x0
JMP 0x003c9a8e
LEA RDI,[R14 + 0x1]
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x003c96bf
MOV R14,RAX
CMP dword ptr [RSP + 0xdc],0x0
JLE 0x003c9c9d
MOV EAX,dword ptr [RSP + 0xe0]
TEST EAX,EAX
JLE 0x003c9c9d
MOVSXD RDX,EAX
CMP RDX,qword ptr [RSP + 0x60]
JG 0x003ca670
MOV dword ptr [RSP + 0x38],EAX
JMP 0x003c9c9d
LEA RDI,[R14 + 0x1]
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x003c96bf
MOV R14,RAX
MOV EAX,dword ptr [RSP + 0xdc]
TEST EAX,EAX
JLE 0x003c9f1b
CMP dword ptr [RSP + 0xe0],0xff
MOV EDX,0xff
CMOVLE EDX,dword ptr [RSP + 0xe0]
MOV EBX,EDX
TEST EDX,EDX
MOV EDX,0x0
CMOVNS EDX,EBX
MOV dword ptr [RSP + 0x3c],EDX
CMP EAX,0x4
JLE 0x003c9c9d
MOV EAX,dword ptr [RSP + 0xe4]
CMP EAX,0x1
JZ 0x003ca02d
CMP EAX,0x2
JNZ 0x003c9c9d
CMP dword ptr [RSP + 0xe8],0x64
JLE 0x003c9f52
MOV dword ptr [RSP + 0xe8],0x64
CMP dword ptr [RSP + 0xec],0x64
JLE 0x003c9f67
MOV dword ptr [RSP + 0xec],0x64
CMP dword ptr [RSP + 0xf0],0x64
JLE 0x003c9f7c
MOV dword ptr [RSP + 0xf0],0x64
MOVSXD RSI,dword ptr [RSP + 0x3c]
MOVSXD RAX,dword ptr [RSP + 0xe8]
MOV RDI,RAX
SHL RDI,0x8
SUB RDI,RAX
ADD RDI,0x32
MOV RAX,-0x5c28f5c28f5c28f5
IMUL RDI
LEA RCX,[RDX + RDI*0x1]
SAR RCX,0x6
SAR RDI,0x3f
SUB RCX,RDI
SHL ECX,0x10
MOVSXD RAX,dword ptr [RSP + 0xf0]
MOV RDI,RAX
SHL RDI,0x8
SUB RDI,RAX
ADD RDI,0x32
MOV RAX,-0x5c28f5c28f5c28f5
IMUL RDI
LEA RAX,[RDX + RDI*0x1]
SAR RAX,0x6
SAR RDI,0x3f
SUB RAX,RDI
ADD ECX,EAX
MOVSXD RAX,dword ptr [RSP + 0xec]
MOV RDI,RAX
SHL RDI,0x8
SUB RDI,RAX
ADD RDI,0x32
MOV RAX,-0x5c28f5c28f5c28f5
IMUL RDI
LEA RAX,[RDX + RDI*0x1]
SAR RAX,0x6
SAR RDI,0x3f
SUB RAX,RDI
SHL EAX,0x8
ADD ECX,EAX
MOV dword ptr [RSP + RSI*0x4 + 0x110],ECX
JMP 0x003c9c9d
CMP dword ptr [RSP + 0xe8],0x168
JLE 0x003ca045
MOV dword ptr [RSP + 0xe8],0x168
CMP dword ptr [RSP + 0xec],0x64
JLE 0x003ca05a
MOV dword ptr [RSP + 0xec],0x64
MOV ECX,dword ptr [RSP + 0xf0]
CMP ECX,0x64
JLE 0x003ca187
MOV dword ptr [RSP + 0xf0],0x64
MOV ESI,dword ptr [RSP + 0xec]
MOVSXD RAX,dword ptr [RSP + 0xe8]
LEA RAX,[RAX + RAX*0x4]
LEA RCX,[RAX + RAX*0x4]
SHL RCX,0x2
MOV RAX,0x2d82d82d82d82d83
IMUL RCX
SAR RDX,0x6
SAR RCX,0x3f
MOV EBP,EDX
SUB EBP,ECX
MOV ECX,0x64
CMP ESI,0x32
JG 0x003ca1d1
ADD ECX,0x64
MOVSXD RCX,ECX
MOVSXD RAX,ESI
IMUL RCX,RAX
ADD RCX,0x32
MOV RAX,-0x5c28f5c28f5c28f5
IMUL RCX
LEA R13,[RDX + RCX*0x1]
SAR R13,0x6
SAR RCX,0x3f
SUB R13D,ECX
ADD ESI,ESI
SUB ESI,R13D
MOV R12D,ESI
LEA EDX,[RBP + 0x21]
MOV ESI,R13D
MOV EDI,R12D
CALL 0x003c9609
MOV ECX,EAX
SHL ECX,0x8
SUB ECX,EAX
ADD ECX,0x32
MOV R15D,0x51eb851f
MOV EAX,ECX
IMUL R15D
SAR EDX,0x5
SAR ECX,0x1f
MOV EBX,EDX
SUB EBX,ECX
MOV EDX,EBP
MOV ESI,R13D
MOV EDI,R12D
CALL 0x003c9609
MOV ECX,EAX
SHL ECX,0x8
SUB ECX,EAX
ADD ECX,0x32
MOV EAX,ECX
IMUL R15D
SAR EDX,0x5
SAR ECX,0x1f
SUB EDX,ECX
MOV dword ptr [RSP + 0x48],EDX
LEA EDX,[RBP + -0x21]
MOV ESI,R13D
MOV EDI,R12D
CALL 0x003c9609
MOV ECX,EAX
SHL ECX,0x8
SUB ECX,EAX
ADD ECX,0x32
MOV EAX,ECX
IMUL R15D
SAR EDX,0x5
SAR ECX,0x1f
SUB EDX,ECX
MOVSXD RSI,dword ptr [RSP + 0x3c]
MOV EAX,EBX
SHL EAX,0x10
MOV ECX,dword ptr [RSP + 0x48]
SHL ECX,0x8
ADD EAX,ECX
ADD EAX,EDX
MOV dword ptr [RSP + RSI*0x4 + 0x110],EAX
JMP 0x003c9c9d
MOV ESI,dword ptr [RSP + 0xec]
TEST ECX,ECX
JNZ 0x003ca1b4
MOV ECX,ESI
SHL ECX,0x8
SUB ECX,ESI
MOV EDX,0x51eb851f
MOV EAX,ECX
IMUL EDX
SAR EDX,0x5
SAR ECX,0x1f
MOV EBX,EDX
SUB EBX,ECX
MOV EDX,EBX
MOV dword ptr [RSP + 0x48],EBX
JMP 0x003ca166
MOVSXD RAX,dword ptr [RSP + 0xe8]
IMUL RAX,RAX,0x64
MOV EDI,0x168
CQO
IDIV RDI
MOV EBP,EAX
JMP 0x003ca0ae
LEA R13D,[RSI + RCX*0x1]
MOVSXD RAX,ESI
MOVSXD RCX,ECX
IMUL RCX,RAX
ADD RCX,0x32
MOV RAX,-0x5c28f5c28f5c28f5
IMUL RCX
LEA RAX,[RDX + RCX*0x1]
SAR RAX,0x6
SAR RCX,0x3f
SUB RAX,RCX
SUB R13D,EAX
JMP 0x003ca0e4
CMP AL,0x2d
JNZ 0x003c9c26
ADD R14,0x1
ADD dword ptr [RSP + 0x90],0x6
MOV dword ptr [RSP + 0x38],0x1
MOV dword ptr [RSP + 0x30],0x0
JMP 0x003c9c9d
ADD EBX,EBX
ADD EBP,EBP
CMP EDX,EBX
JG 0x003ca230
CMP EAX,EBP
JG 0x003ca230
MOVSXD R12,EBP
MOVSXD R13,EBX
MOV RCX,qword ptr [RSP + 0x58]
MOV RDX,R12
MOV RSI,R13
MOV RDI,qword ptr [RSP + 0x50]
CALL 0x0014b140
TEST EAX,EAX
JZ 0x003ca670
MOV RSI,R12
MOV RDI,R13
CALL 0x0014af40
MOV qword ptr [RSP + 0x48],RAX
TEST RAX,RAX
JZ 0x003ca3ba
MOV RDX,R12
IMUL RDX,R13
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x00149d30
MOV EAX,dword ptr [RSP + 0x20]
TEST EAX,EAX
JLE 0x003ca30a
MOV EDI,dword ptr [RSP + 0x2c]
MOV ESI,EDI
MOV R15D,0x0
MOV R13D,0x0
MOV R12D,0x0
MOVSXD RDI,EDI
MOV qword ptr [RSP + 0x20],RDI
MOV dword ptr [RSP + 0x2c],EBX
MOV dword ptr [RSP + 0xa0],EBP
MOV EBP,EAX
MOV qword ptr [RSP + 0xa8],R14
MOV R14D,ESI
MOVSXD RDI,R15D
ADD RDI,qword ptr [RSP + 0x48]
MOVSXD RSI,R13D
ADD RSI,qword ptr [RSP + 0x8]
MOV RDX,qword ptr [RSP + 0x20]
CALL 0x0014d710
ADD R12D,0x1
ADD R13D,R14D
ADD R15D,EBX
CMP EBP,R12D
JNZ 0x003ca2ce
MOV EBX,dword ptr [RSP + 0x2c]
MOV EBP,dword ptr [RSP + 0xa0]
MOV R14,qword ptr [RSP + 0xa8]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV dword ptr [RSP + 0x20],EBP
MOV dword ptr [RSP + 0x2c],EBX
MOV RAX,qword ptr [RSP + 0x48]
MOV qword ptr [RSP + 0x8],RAX
MOV EAX,dword ptr [RSP + 0x94]
MOV EBX,dword ptr [RSP + 0x3c]
CMP EAX,EBX
CMOVL EAX,EBX
MOV dword ptr [RSP + 0x94],EAX
LEA RAX,[R14 + 0x1]
MOV qword ptr [RSP + 0xa0],RAX
MOVZX R15D,byte ptr [R14]
SUB R15D,0x3f
JZ 0x003ca650
CMP dword ptr [RSP + 0x38],0x1
JLE 0x003ca3ce
MOVSXD RBX,dword ptr [RSP + 0x2c]
MOV qword ptr [RSP + 0xa8],RBX
MOVSXD RAX,dword ptr [RSP + 0x20]
IMUL RAX,RBX
MOV qword ptr [RSP + 0xb0],RAX
MOV dword ptr [RSP + 0x48],0x1
MOV R13D,0x0
MOV EAX,dword ptr [RSP + 0x98]
SUB EAX,0x1
MOV dword ptr [RSP + 0xbc],EAX
MOVSXD RAX,dword ptr [RSP + 0x30]
MOV qword ptr [RSP + 0x30],RAX
MOVSXD RBP,dword ptr [RSP + 0x38]
ADD RAX,RBP
MOV qword ptr [RSP + 0xc0],RAX
JMP 0x003ca5c7
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV EBX,0x0
JMP 0x003c9a8e
MOVSXD R8,dword ptr [RSP + 0x2c]
MOVSXD RDI,dword ptr [RSP + 0x20]
IMUL RDI,R8
MOV EDX,0x0
MOV ECX,0x1
MOVSXD R9,dword ptr [RSP + 0x30]
MOV EBX,dword ptr [RSP + 0x90]
MOV R10D,dword ptr [RSP + 0x9c]
MOV R11D,dword ptr [RSP + 0xb8]
JMP 0x003ca424
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV EBX,0x0
JMP 0x003c9a8e
ADD ECX,ECX
ADD RDX,0x1
CMP RDX,0x6
JZ 0x003ca45d
TEST R15D,ECX
JZ 0x003ca418
LEA ESI,[RBX + RDX*0x1]
MOVSXD RAX,ESI
IMUL RAX,R8
ADD RAX,R9
CMP RDI,RAX
JBE 0x003ca404
MOV R14,qword ptr [RSP + 0x8]
MOVZX EBP,byte ptr [RSP + 0x3c]
MOV byte ptr [R14 + RAX*0x1],BPL
MOV EAX,dword ptr [RSP + 0x30]
CMP R11D,EAX
CMOVL R11D,EAX
CMP R10D,ESI
CMOVL R10D,ESI
JMP 0x003ca418
MOV dword ptr [RSP + 0x9c],R10D
MOV dword ptr [RSP + 0xb8],R11D
ADD dword ptr [RSP + 0x30],0x1
MOV R14,qword ptr [RSP + 0xa0]
MOV dword ptr [RSP + 0x38],0x1
JMP 0x003c9c9d
MOV dword ptr [RSP + 0x38],EAX
MOV dword ptr [RSP + 0xdc],EAX
MOV EAX,dword ptr [RSP + 0x90]
LEA R12D,[RAX + R13*0x1]
MOV EAX,dword ptr [RSP + 0x38]
LEA R14D,[R12 + RAX*0x1]
CMP R12D,R14D
JGE 0x003ca577
MOVSXD RAX,R12D
IMUL RAX,qword ptr [RSP + 0xa8]
ADD RAX,qword ptr [RSP + 0x30]
LEA RDX,[RAX + RBP*0x1]
CMP RDX,qword ptr [RSP + 0xb0]
JNC 0x003ca553
LEA EBX,[R12 + 0x1]
MOVSXD RBX,EBX
MOV RSI,qword ptr [RSP + 0xa8]
IMUL RBX,RSI
ADD RBX,qword ptr [RSP + 0xc0]
MOV dword ptr [RSP + 0xc8],R15D
MOV dword ptr [RSP + 0xcc],R13D
MOV R13,RSI
MOV R15,qword ptr [RSP + 0xb0]
MOV RDI,qword ptr [RSP + 0x8]
ADD RDI,RAX
MOV RDX,RBP
MOV ESI,dword ptr [RSP + 0x3c]
CALL 0x00149d30
ADD R12D,0x1
CMP R12D,R14D
JZ 0x003ca567
LEA RDX,[RBX + R13*0x1]
MOV RAX,RBX
SUB RAX,RBP
CMP RBX,R15
JNC 0x003ca553
MOV RBX,RDX
JMP 0x003ca508
MOV dword ptr [RSP + 0x38],0x1
JMP 0x003ca492
MOV dword ptr [RSP + 0x38],0x1
JMP 0x003ca492
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV EBX,0x0
JMP 0x003c9a8e
MOV R15D,dword ptr [RSP + 0xc8]
MOV R13D,dword ptr [RSP + 0xcc]
MOV EAX,dword ptr [RSP + 0xb8]
MOV EBX,dword ptr [RSP + 0xbc]
CMP EAX,EBX
CMOVL EAX,EBX
MOV dword ptr [RSP + 0xb8],EAX
SUB R14D,0x1
MOV EAX,dword ptr [RSP + 0x9c]
CMP EAX,R14D
CMOVGE R14D,EAX
MOV dword ptr [RSP + 0x9c],R14D
MOV ECX,dword ptr [RSP + 0x38]
SUB ECX,0x1
ADD R13D,ECX
SHL dword ptr [RSP + 0x48],CL
SHL dword ptr [RSP + 0x48],0x1
ADD R13D,0x1
CMP R13D,0x5
JG 0x003ca627
TEST dword ptr [RSP + 0x48],R15D
JZ 0x003ca5b9
MOV EAX,dword ptr [RSP + 0x48]
LEA EDX,[RAX + RAX*0x1]
MOV dword ptr [RSP + 0xdc],0x1
LEA EAX,[R13 + 0x1]
CMP EAX,0x5
JG 0x003ca539
MOV ECX,0x6
SUB ECX,R13D
MOV EAX,0x2
TEST R15D,EDX
JZ 0x003ca546
ADD EDX,EDX
MOV ESI,EAX
CMP ECX,EAX
JZ 0x003ca487
ADD EAX,0x1
TEST R15D,EDX
JNZ 0x003ca603
MOV dword ptr [RSP + 0x38],ESI
MOV dword ptr [RSP + 0xdc],ESI
JMP 0x003ca492
MOV EAX,dword ptr [RSP + 0x98]
MOV dword ptr [RSP + 0x30],EAX
MOV R14,qword ptr [RSP + 0xa0]
MOV dword ptr [RSP + 0x38],0x1
JMP 0x003c9c9d
ADD R14,0x1
JMP 0x003c9c9d
MOV EAX,dword ptr [RSP + 0x98]
MOV dword ptr [RSP + 0x30],EAX
MOV R14,qword ptr [RSP + 0xa0]
MOV dword ptr [RSP + 0x38],0x1
JMP 0x003c9c9d
MOV R14D,dword ptr [RSP + 0xb8]
ADD R14D,0x1
MOV EAX,dword ptr [RSP + 0x40]
CMP EAX,R14D
CMOVGE R14D,EAX
MOV EBP,dword ptr [RSP + 0x9c]
ADD EBP,0x1
MOV EAX,dword ptr [RSP + 0x44]
CMP EAX,EBP
CMOVGE EBP,EAX
CMP dword ptr [RSP + 0x2c],R14D
JG 0x003ca7c8
CMP dword ptr [RSP + 0x20],EBP
JG 0x003ca7c8
MOV RAX,qword ptr [RSP + 0x68]
MOV RBX,qword ptr [RSP + 0x8]
MOV qword ptr [RAX],RBX
MOVSXD R14,dword ptr [RSP + 0x2c]
MOV RAX,qword ptr [RSP + 0x70]
MOV qword ptr [RAX],R14
MOVSXD RAX,dword ptr [RSP + 0x20]
MOV RBX,qword ptr [RSP + 0x78]
MOV qword ptr [RBX],RAX
MOV EDI,dword ptr [RSP + 0x94]
ADD EDI,0x1
MOVSXD RDI,EDI
MOV R15,qword ptr [RSP + 0x88]
MOV qword ptr [R15],RDI
MOV ESI,0x4
CALL 0x0014af40
MOV RDX,qword ptr [RSP + 0x80]
MOV qword ptr [RDX],RAX
MOV EBX,0x0
TEST RAX,RAX
JZ 0x003c9a8e
MOV dword ptr [RSP + 0xdc],0x0
MOV RSI,R15
CMP qword ptr [R15],0x0
JLE 0x003ca893
MOV EAX,0x0
LEA ECX,[RAX*0x4]
MOVSXD RCX,ECX
MOV RDI,qword ptr [RDX]
CDQE
MOVSX EAX,word ptr [RSP + RAX*0x4 + 0x112]
MOV byte ptr [RDI + RCX*0x1],AL
MOV EAX,dword ptr [RSP + 0xdc]
LEA ECX,[RAX*0x4]
MOVSXD RCX,ECX
MOV RDI,qword ptr [RDX]
CDQE
MOV EAX,dword ptr [RSP + RAX*0x4 + 0x110]
MOVZX EAX,AH
MOV byte ptr [RDI + RCX*0x1 + 0x1],AL
MOV EAX,dword ptr [RSP + 0xdc]
LEA ECX,[RAX*0x4]
MOVSXD RCX,ECX
MOV RDI,qword ptr [RDX]
CDQE
MOV EAX,dword ptr [RSP + RAX*0x4 + 0x110]
MOV byte ptr [RDI + RCX*0x1 + 0x2],AL
MOV EAX,dword ptr [RSP + 0xdc]
SHL EAX,0x2
CDQE
MOV RCX,qword ptr [RDX]
MOV byte ptr [RCX + RAX*0x1 + 0x3],0xff
MOV EAX,dword ptr [RSP + 0xdc]
ADD EAX,0x1
MOV dword ptr [RSP + 0xdc],EAX
MOVSXD RCX,EAX
CMP RCX,qword ptr [RSI]
JL 0x003ca72e
MOV EBX,0x1
JMP 0x003c9a8e
MOVSXD R12,EBP
MOVSXD R15,R14D
MOV RCX,qword ptr [RSP + 0x58]
MOV RDX,R12
MOV RSI,R15
MOV RDI,qword ptr [RSP + 0x50]
CALL 0x0014b140
MOV EBX,EAX
TEST EAX,EAX
JZ 0x003ca870
MOV RSI,R12
MOV RDI,R15
CALL 0x0014af40
MOV qword ptr [RSP + 0x10],RAX
TEST RAX,RAX
JZ 0x003ca87f
TEST EBP,EBP
JLE 0x003ca84e
MOV EAX,dword ptr [RSP + 0x2c]
MOV dword ptr [RSP + 0x20],EAX
MOV dword ptr [RSP + 0x18],R14D
MOV EBX,0x0
MOV R12D,0x0
MOV R13D,0x0
MOVSXD RDI,EBX
ADD RDI,qword ptr [RSP + 0x10]
MOVSXD RSI,R12D
ADD RSI,qword ptr [RSP + 0x8]
MOV RDX,R15
CALL 0x0014d710
ADD R13D,0x1
ADD R12D,dword ptr [RSP + 0x20]
ADD EBX,dword ptr [RSP + 0x18]
CMP EBP,R13D
JNZ 0x003ca824
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV dword ptr [RSP + 0x20],EBP
MOV dword ptr [RSP + 0x2c],R14D
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RSP + 0x8],RAX
JMP 0x003ca6af
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
JMP 0x003c9a8e
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014dad8
MOV EBX,0x0
JMP 0x003c9a8e
MOV EBX,0x1
JMP 0x003c9a8e
CALL 0x0014c5c0
(translation_unit "int sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)" identifier (parameter_list "(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long *param_6" (sized_type_specifier "long" long) (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "long *param_7" (sized_type_specifier "long" long) (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined8 param_8" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "void *local_550;" primitive_type (pointer_declarator "*local_550" * identifier) ;) (declaration "uint local_52c;" type_identifier identifier ;) (declaration "int local_520;" primitive_type identifier ;) (declaration "int local_51c;" primitive_type identifier ;) (declaration "uint local_518;" type_identifier identifier ;) (declaration "uint local_514;" type_identifier identifier ;) (declaration "int local_4c8;" primitive_type identifier ;) (declaration "int local_4c4;" primitive_type identifier ;) (declaration "int local_4bc;" primitive_type identifier ;) (declaration "int local_4a0;" primitive_type identifier ;) (declaration "int local_47c;" primitive_type identifier ;) (declaration "undefined8 local_478;" type_identifier identifier ;) (declaration "uint local_470;" type_identifier identifier ;) (declaration "uint uStack_46c;" type_identifier identifier ;) (declaration "undefined8 local_468;" type_identifier identifier ;) (declaration "undefined8 local_460;" type_identifier identifier ;) (declaration "undefined8 local_458;" type_identifier identifier ;) (declaration "undefined4 uStack_448;" type_identifier identifier ;) (declaration "int aiStack_a8 [26];" primitive_type (array_declarator "aiStack_a8 [26]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_478 = 0;" (assignment_expression "local_478 = 0" identifier = number_literal) ;) (expression_statement "local_470 = 0;" (assignment_expression "local_470 = 0" identifier = number_literal) ;) (expression_statement "uStack_46c = 0;" (assignment_expression "uStack_46c = 0" identifier = number_literal) ;) (expression_statement "local_468 = 0;" (assignment_expression "local_468 = 0" identifier = number_literal) ;) (expression_statement "local_460 = 0;" (assignment_expression "local_460 = 0" identifier = number_literal) ;) (expression_statement "local_458 = 0;" (assignment_expression "local_458 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pbVar13 = param_2;" (assignment_expression "pbVar13 = param_2" identifier = identifier) ;) (do_statement "do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);" do (compound_statement "{\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "bVar1 = *pbVar13;" (assignment_expression "bVar1 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) ;) (expression_statement "iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);" (assignment_expression "iVar3 = SetImageExtent(param_1,0x800,0x800,param_8)" identifier = (call_expression "SetImageExtent(param_1,0x800,0x800,param_8)" identifier (argument_list "(param_1,0x800,0x800,param_8)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }" { (expression_statement "local_550 = (void *)AcquireQuantumMemory(0x800,0x800);" (assignment_expression "local_550 = (void *)AcquireQuantumMemory(0x800,0x800)" identifier = (cast_expression "(void *)AcquireQuantumMemory(0x800,0x800)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x800,0x800)" identifier (argument_list "(0x800,0x800)" ( number_literal , number_literal ))))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }" if (parenthesized_expression "(local_550 != (void *)0x0)" ( (binary_expression "local_550 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }" { (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);" do (compound_statement "{\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      }" { (expression_statement "*(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);" (assignment_expression "*(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6)" (pointer_expression "*(undefined4 *)((long)&uStack_448 + lVar6)" * (cast_expression "(undefined4 *)((long)&uStack_448 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_448 + lVar6)" ( (binary_expression "(long)&uStack_448 + lVar6" (cast_expression "(long)&uStack_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_448" & identifier)) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)&DAT_0047bf80 + lVar6)" * (cast_expression "(undefined4 *)((long)&DAT_0047bf80 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_0047bf80 + lVar6)" ( (binary_expression "(long)&DAT_0047bf80 + lVar6" (cast_expression "(long)&DAT_0047bf80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_0047bf80" & identifier)) + identifier) ))))) ;) (expression_statement "lVar6 = lVar6 + 4;" (assignment_expression "lVar6 = lVar6 + 4" identifier = (binary_expression "lVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar6 != 0x40)" ( (binary_expression "lVar6 != 0x40" identifier != number_literal) )) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0x34;" (assignment_expression "iVar3 = 0x34" identifier = number_literal) ;) (do_statement "do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);" do (compound_statement "{\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      }" { (expression_statement "iVar16 = iVar3 + -0x24;" (assignment_expression "iVar16 = iVar3 + -0x24" identifier = (binary_expression "iVar3 + -0x24" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar17;" (assignment_expression "iVar12 = iVar17" identifier = identifier) ;) (do_statement "do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);" do (compound_statement "{\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        }" { (expression_statement "iVar4 = iVar12;" (assignment_expression "iVar4 = iVar12" identifier = identifier) ;) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" identifier = identifier) ;) (do_statement "do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);" do (compound_statement "{\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          }" { (expression_statement "(&uStack_448)[iVar10] = iVar4;" (assignment_expression "(&uStack_448)[iVar10] = iVar4" (subscript_expression "(&uStack_448)[iVar10]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 0x33;" (assignment_expression "iVar4 = iVar4 + 0x33" identifier = (binary_expression "iVar4 + 0x33" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != iVar12 + 0x132)" ( (binary_expression "iVar4 != iVar12 + 0x132" identifier != (binary_expression "iVar12 + 0x132" identifier + number_literal)) )) ;) (expression_statement "iVar16 = iVar16 + 6;" (assignment_expression "iVar16 = iVar16 + 6" identifier = (binary_expression "iVar16 + 6" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + 0x3300;" (assignment_expression "iVar12 = iVar12 + 0x3300" identifier = (binary_expression "iVar12 + 0x3300" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 != iVar3)" ( (binary_expression "iVar16 != iVar3" identifier != identifier) )) ;) (expression_statement "iVar3 = iVar3 + 0x24;" (assignment_expression "iVar3 = iVar3 + 0x24" identifier = (binary_expression "iVar3 + 0x24" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + 0x330000;" (assignment_expression "iVar17 = iVar17 + 0x330000" identifier = (binary_expression "iVar17 + 0x330000" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0x1320000)" ( (binary_expression "iVar17 != 0x1320000" identifier != number_literal) )) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0xe8;" (assignment_expression "iVar17 = 0xe8" identifier = number_literal) ;) (do_statement "do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);" do (compound_statement "{\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      }" { (expression_statement "(&uStack_448)[iVar17] = iVar3;" (assignment_expression "(&uStack_448)[iVar17] = iVar3" (subscript_expression "(&uStack_448)[iVar17]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 0xb0b0b;" (assignment_expression "iVar3 = iVar3 + 0xb0b0b" identifier = (binary_expression "iVar3 + 0xb0b0b" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != 0x1090908)" ( (binary_expression "iVar3 != 0x1090908" identifier != number_literal) )) ;) (expression_statement "local_47c = 0x100;" (assignment_expression "local_47c = 0x100" identifier = number_literal) ;) (expression_statement "memset(local_550,0,0x400000);" (call_expression "memset(local_550,0,0x400000)" identifier (argument_list "(local_550,0,0x400000)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "local_52c = 0x800;" (assignment_expression "local_52c = 0x800" identifier = number_literal) ;) (expression_statement "local_4c4 = 2;" (assignment_expression "local_4c4 = 2" identifier = number_literal) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (expression_statement "local_518 = 0;" (assignment_expression "local_518 = 0" identifier = number_literal) ;) (expression_statement "local_4bc = 0;" (assignment_expression "local_4bc = 0" identifier = number_literal) ;) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" identifier = number_literal) ;) (expression_statement "local_4c8 = 0;" (assignment_expression "local_4c8 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0x800;" (assignment_expression "uVar19 = 0x800" identifier = number_literal) ;) (labeled_statement "LAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" statement_identifier : (while_statement "while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" { (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_003ca670;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (if_statement "if (bVar1 != 0x1b) break;" if (parenthesized_expression "(bVar1 != 0x1b)" ( (binary_expression "bVar1 != 0x1b" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" if (parenthesized_expression "(param_2[1] == 0x50)" ( (binary_expression "param_2[1] == 0x50" (subscript_expression "param_2[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" statement_identifier : (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;)) (if_statement "if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }" if (parenthesized_expression "(((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0))" ( (binary_expression "((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)" (parenthesized_expression "((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c))" ( (binary_expression "(*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)" (parenthesized_expression "(*param_2 == 0x71)" ( (binary_expression "*param_2 == 0x71" (pointer_expression "*param_2" * identifier) == number_literal) )) && (parenthesized_expression "(param_2 = param_2 + 1, 2 < local_47c)" ( (comma_expression "param_2 = param_2 + 1, 2 < local_47c" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) , (binary_expression "2 < local_47c" number_literal < identifier)) ))) )) && (parenthesized_expression "(local_470 == 0)" ( (binary_expression "local_470 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_470 = 10;\n          }" { (expression_statement "local_470 = 10;" (assignment_expression "local_470 = 10" identifier = number_literal) ;) })) }) (else_clause "else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" else (compound_statement "{\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" { (if_statement "if (param_2[1] == 0x5c) goto LAB_003ca670;" if (parenthesized_expression "(param_2[1] == 0x5c)" ( (binary_expression "param_2[1] == 0x5c" (subscript_expression "param_2[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (labeled_statement "LAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }" statement_identifier : (if_statement "if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }" if (parenthesized_expression "((byte)(bVar1 - 0x3f) < 0x41)" ( (binary_expression "(byte)(bVar1 - 0x3f) < 0x41" (call_expression "(byte)(bVar1 - 0x3f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 - 0x3f)" ( (binary_expression "bVar1 - 0x3f" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }" { (expression_statement "iVar17 = iVar3 + local_520;" (assignment_expression "iVar17 = iVar3 + local_520" identifier = (binary_expression "iVar3 + local_520" identifier + identifier)) ;) (expression_statement "uVar5 = uVar19;" (assignment_expression "uVar5 = uVar19" identifier = identifier) ;) (if_statement "if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }" if (parenthesized_expression "(((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6))" ( (binary_expression "((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)" (parenthesized_expression "((int)local_52c < iVar17)" ( (binary_expression "(int)local_52c < iVar17" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) || (parenthesized_expression "((int)uVar19 < local_4c8 + 6)" ( (binary_expression "(int)uVar19 < local_4c8 + 6" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "local_4c8 + 6" identifier + number_literal)) ))) )) (compound_statement "{\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }" { (expression_statement "uVar21 = local_52c;" (assignment_expression "uVar21 = local_52c" identifier = identifier) ;) (do_statement "do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);" do (compound_statement "{\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              }" { (do_statement "do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);" do (compound_statement "{\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                }" { (expression_statement "uVar5 = uVar5 * 2;" (assignment_expression "uVar5 = uVar5 * 2" identifier = (binary_expression "uVar5 * 2" identifier * number_literal)) ;) (expression_statement "uVar21 = uVar21 * 2;" (assignment_expression "uVar21 = uVar21 * 2" identifier = (binary_expression "uVar21 * 2" identifier * number_literal)) ;) }) while (parenthesized_expression "((int)uVar21 < iVar17)" ( (binary_expression "(int)uVar21 < iVar17" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) }) while (parenthesized_expression "((int)uVar5 < local_4c8 + 6)" ( (binary_expression "(int)uVar5 < local_4c8 + 6" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "local_4c8 + 6" identifier + number_literal)) )) ;) (expression_statement "lVar6 = (long)(int)uVar5;" (assignment_expression "lVar6 = (long)(int)uVar5" identifier = (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "lVar20 = (long)(int)uVar21;" (assignment_expression "lVar20 = (long)(int)uVar21" identifier = (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);" (assignment_expression "iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier = (call_expression "SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier (argument_list "(param_1,lVar20,lVar6,param_8)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) goto LAB_003ca670;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6)" identifier = (cast_expression "(void *)AcquireQuantumMemory(lVar20,lVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(lVar20,lVar6)" identifier (argument_list "(lVar20,lVar6)" ( identifier , identifier ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "memset(pvVar7,0,lVar6 * lVar20);" (call_expression "memset(pvVar7,0,lVar6 * lVar20)" identifier (argument_list "(pvVar7,0,lVar6 * lVar20)" ( identifier , number_literal , (binary_expression "lVar6 * lVar20" identifier * identifier) ))) ;) (if_statement "if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);" do (compound_statement "{\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                }" { (expression_statement "memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);" (call_expression "memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c)" identifier (argument_list "((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c)" ( (cast_expression "(void *)((long)iVar16 + (long)pvVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar16 + (long)pvVar7)" ( (binary_expression "(long)iVar16 + (long)pvVar7" (cast_expression "(long)iVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(void *)((long)iVar12 + (long)local_550)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar12 + (long)local_550)" ( (binary_expression "(long)iVar12 + (long)local_550" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + local_52c;" (assignment_expression "iVar12 = iVar12 + local_52c" identifier = (binary_expression "iVar12 + local_52c" identifier + identifier)) ;) (expression_statement "iVar16 = iVar16 + uVar21;" (assignment_expression "iVar16 = iVar16 + uVar21" identifier = (binary_expression "iVar16 + uVar21" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar19 != uVar18)" ( (binary_expression "uVar19 != uVar18" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" identifier = identifier) ;) (expression_statement "local_52c = uVar21;" (assignment_expression "local_52c = uVar21" identifier = identifier) ;) })) (if_statement "if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }" if (parenthesized_expression "(local_4c4 < local_51c)" ( (binary_expression "local_4c4 < local_51c" identifier < identifier) )) (compound_statement "{\n              local_4c4 = local_51c;\n            }" { (expression_statement "local_4c4 = local_51c;" (assignment_expression "local_4c4 = local_51c" identifier = identifier) ;) })) (expression_statement "pbVar13 = param_2 + 1;" (assignment_expression "pbVar13 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = *param_2 - 0x3f;" (assignment_expression "uVar21 = *param_2 - 0x3f" identifier = (binary_expression "*param_2 - 0x3f" (pointer_expression "*param_2" * identifier) - number_literal)) ;) (expression_statement "param_2 = pbVar13;" (assignment_expression "param_2 = pbVar13" identifier = identifier) ;) (expression_statement "uVar19 = uVar5;" (assignment_expression "uVar19 = uVar5" identifier = identifier) ;) (if_statement "if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" { (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = iVar17;" (assignment_expression "iVar3 = iVar17" identifier = identifier) ;) }) (else_clause "else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" else (if_statement "if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" if (parenthesized_expression "(local_520 < 2)" ( (binary_expression "local_520 < 2" identifier < number_literal) )) (compound_statement "{\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }" { (expression_statement "uVar15 = (long)(int)uVar5 * (long)(int)local_52c;" (assignment_expression "uVar15 = (long)(int)uVar5 * (long)(int)local_52c" identifier = (binary_expression "(long)(int)uVar5 * (long)(int)local_52c" (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) * (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);" do (compound_statement "{\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              }" { (if_statement "if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }" if (parenthesized_expression "((uVar21 & uVar5) != 0)" ( (binary_expression "(uVar21 & uVar5) != 0" (parenthesized_expression "(uVar21 & uVar5)" ( (binary_expression "uVar21 & uVar5" identifier & identifier) )) != number_literal) )) (compound_statement "{\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }" { (expression_statement "iVar17 = local_4c8 + (int)lVar6;" (assignment_expression "iVar17 = local_4c8 + (int)lVar6" identifier = (binary_expression "local_4c8 + (int)lVar6" identifier + (cast_expression "(int)lVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;" (assignment_expression "uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3" identifier = (binary_expression "(long)iVar17 * (long)(int)local_52c + (long)iVar3" (binary_expression "(long)iVar17 * (long)(int)local_52c" (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) + (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }" if (parenthesized_expression "(uVar15 < uVar8 || uVar15 - uVar8 == 0)" ( (binary_expression "uVar15 < uVar8 || uVar15 - uVar8 == 0" (binary_expression "uVar15 < uVar8" identifier < identifier) || (binary_expression "uVar15 - uVar8 == 0" (binary_expression "uVar15 - uVar8" identifier - identifier) == number_literal)) )) (compound_statement "{\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;" (assignment_expression "*(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c" (pointer_expression "*(undefined1 *)((long)local_550 + uVar8)" * (cast_expression "(undefined1 *)((long)local_550 + uVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_550 + uVar8)" ( (binary_expression "(long)local_550 + uVar8" (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (cast_expression "(undefined1)local_51c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }" if (parenthesized_expression "(local_4a0 < iVar3)" ( (binary_expression "local_4a0 < iVar3" identifier < identifier) )) (compound_statement "{\n                    local_4a0 = iVar3;\n                  }" { (expression_statement "local_4a0 = iVar3;" (assignment_expression "local_4a0 = iVar3" identifier = identifier) ;) })) (if_statement "if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }" if (parenthesized_expression "(local_4bc < iVar17)" ( (binary_expression "local_4bc < iVar17" identifier < identifier) )) (compound_statement "{\n                    local_4bc = iVar17;\n                  }" { (expression_statement "local_4bc = iVar17;" (assignment_expression "local_4bc = iVar17" identifier = identifier) ;) })) })) (expression_statement "uVar5 = uVar5 * 2;" (assignment_expression "uVar5 = uVar5 * 2" identifier = (binary_expression "uVar5 * 2" identifier * number_literal)) ;) (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" identifier = (binary_expression "lVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar6 != 6)" ( (binary_expression "lVar6 != 6" identifier != number_literal) )) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" else (compound_statement "{\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" { (expression_statement "lVar6 = (long)(int)local_52c;" (assignment_expression "lVar6 = (long)(int)local_52c" identifier = (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "sVar11 = (size_t)local_520;" (assignment_expression "sVar11 = (size_t)local_520" identifier = (cast_expression "(size_t)local_520" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (do_statement "do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);" do (compound_statement "{\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              }" { (if_statement "if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }" if (parenthesized_expression "((uVar18 & uVar21) != 0)" ( (binary_expression "(uVar18 & uVar21) != 0" (parenthesized_expression "(uVar18 & uVar21)" ( (binary_expression "uVar18 & uVar21" identifier & identifier) )) != number_literal) )) (compound_statement "{\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }" { (expression_statement "local_47c = 1;" (assignment_expression "local_47c = 1" identifier = number_literal) ;) (if_statement "if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }" if (parenthesized_expression "(iVar12 + 1 < 6)" ( (binary_expression "iVar12 + 1 < 6" (binary_expression "iVar12 + 1" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }" { (expression_statement "uVar2 = uVar18;" (assignment_expression "uVar2 = uVar18" identifier = identifier) ;) (for_statement "for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }" for ( (assignment_expression "iVar16 = 2" identifier = number_literal) ; (parenthesized_expression "(uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16))" ( (comma_expression "uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)" (assignment_expression "uVar2 = uVar2 * 2" identifier = (binary_expression "uVar2 * 2" identifier * number_literal)) , (binary_expression "(uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)" (binary_expression "(uVar21 & uVar2) != 0" (parenthesized_expression "(uVar21 & uVar2)" ( (binary_expression "uVar21 & uVar2" identifier & identifier) )) != number_literal) && (parenthesized_expression "(local_47c = iVar16, 6 - iVar12 != iVar16)" ( (comma_expression "local_47c = iVar16, 6 - iVar12 != iVar16" (assignment_expression "local_47c = iVar16" identifier = identifier) , (binary_expression "6 - iVar12 != iVar16" (binary_expression "6 - iVar12" number_literal - identifier) != identifier)) )))) )) ; (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n                    }" { })) })) (expression_statement "iVar4 = local_47c;" (assignment_expression "iVar4 = local_47c" identifier = identifier) ;) (expression_statement "iVar16 = local_4c8 + iVar12;" (assignment_expression "iVar16 = local_4c8 + iVar12" identifier = (binary_expression "local_4c8 + iVar12" identifier + identifier)) ;) (expression_statement "iVar10 = iVar16 + local_47c;" (assignment_expression "iVar10 = iVar16 + local_47c" identifier = (binary_expression "iVar16 + local_47c" identifier + identifier)) ;) (if_statement "if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }" if (parenthesized_expression "(iVar16 < iVar10)" ( (binary_expression "iVar16 < iVar10" identifier < identifier) )) (compound_statement "{\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }" { (expression_statement "lVar20 = iVar16 * lVar6 + (long)iVar3;" (assignment_expression "lVar20 = iVar16 * lVar6 + (long)iVar3" identifier = (binary_expression "iVar16 * lVar6 + (long)iVar3" (binary_expression "iVar16 * lVar6" identifier * identifier) + (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }" if (parenthesized_expression "((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11)" ( (binary_expression "(ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11" (call_expression "(ulong)((int)uVar5 * lVar6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar5 * lVar6)" ( (binary_expression "(int)uVar5 * lVar6" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= (binary_expression "lVar20 + sVar11" identifier + identifier)) )) (compound_statement "{\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }" { (labeled_statement "LAB_003ca553:\n                      RelinquishMagickMemory(local_550);" statement_identifier : (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;" (assignment_expression "uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11" identifier = (binary_expression "(iVar16 + 1) * lVar6 + (long)iVar3 + sVar11" (binary_expression "(iVar16 + 1) * lVar6 + (long)iVar3" (binary_expression "(iVar16 + 1) * lVar6" (parenthesized_expression "(iVar16 + 1)" ( (binary_expression "iVar16 + 1" identifier + number_literal) )) * identifier) + (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + identifier)) ;) (while_statement "while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }" { (expression_statement "memset((void *)((long)local_550 + lVar20),local_51c,sVar11);" (call_expression "memset((void *)((long)local_550 + lVar20),local_51c,sVar11)" identifier (argument_list "((void *)((long)local_550 + lVar20),local_51c,sVar11)" ( (cast_expression "(void *)((long)local_550 + lVar20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_550 + lVar20)" ( (binary_expression "(long)local_550 + lVar20" (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (if_statement "if (iVar16 == iVar10) break;" if (parenthesized_expression "(iVar16 == iVar10)" ( (binary_expression "iVar16 == iVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = uVar15 - sVar11;" (assignment_expression "lVar20 = uVar15 - sVar11" identifier = (binary_expression "uVar15 - sVar11" identifier - identifier)) ;) (expression_statement "bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;" (assignment_expression "bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15" identifier = (binary_expression "(ulong)((int)uVar5 * lVar6) <= uVar15" (call_expression "(ulong)((int)uVar5 * lVar6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar5 * lVar6)" ( (binary_expression "(int)uVar5 * lVar6" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= identifier)) ;) (expression_statement "uVar15 = uVar15 + lVar6;" (assignment_expression "uVar15 = uVar15 + lVar6" identifier = (binary_expression "uVar15 + lVar6" identifier + identifier)) ;) (if_statement "if (bVar22) goto LAB_003ca553;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_003ca553;" goto statement_identifier ;)) })) })) (if_statement "if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }" if (parenthesized_expression "(local_4a0 < iVar17 + -1)" ( (binary_expression "local_4a0 < iVar17 + -1" identifier < (binary_expression "iVar17 + -1" identifier + number_literal)) )) (compound_statement "{\n                    local_4a0 = iVar17 + -1;\n                  }" { (expression_statement "local_4a0 = iVar17 + -1;" (assignment_expression "local_4a0 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar16 = iVar10 + -1;" (assignment_expression "iVar16 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (if_statement "if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }" if (parenthesized_expression "(iVar10 + -1 <= local_4bc)" ( (binary_expression "iVar10 + -1 <= local_4bc" (binary_expression "iVar10 + -1" identifier + number_literal) <= identifier) )) (compound_statement "{\n                    iVar16 = local_4bc;\n                  }" { (expression_statement "iVar16 = local_4bc;" (assignment_expression "iVar16 = local_4bc" identifier = identifier) ;) })) (expression_statement "iVar12 = iVar12 + iVar4 + -1;" (assignment_expression "iVar12 = iVar12 + iVar4 + -1" identifier = (binary_expression "iVar12 + iVar4 + -1" (binary_expression "iVar12 + iVar4" identifier + identifier) + number_literal)) ;) (expression_statement "uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);" (assignment_expression "uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f)" identifier = (binary_expression "uVar18 << ((byte)(iVar4 + -1) & 0x1f)" identifier << (parenthesized_expression "((byte)(iVar4 + -1) & 0x1f)" ( (binary_expression "(byte)(iVar4 + -1) & 0x1f" (call_expression "(byte)(iVar4 + -1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar4 + -1)" ( (binary_expression "iVar4 + -1" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "local_4bc = iVar16;" (assignment_expression "local_4bc = iVar16" identifier = identifier) ;) })) (expression_statement "uVar18 = uVar18 << 1;" (assignment_expression "uVar18 = uVar18 << 1" identifier = (binary_expression "uVar18 << 1" identifier << number_literal)) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 < 6)" ( (binary_expression "iVar12 < 6" identifier < number_literal) )) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = iVar17;" (assignment_expression "iVar3 = iVar17" identifier = identifier) ;) }))))) }) (else_clause "else {\n            param_2 = param_2 + 1;\n          }" else (compound_statement "{\n            param_2 = param_2 + 1;\n          }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })))) }))) }))) (if_statement "if (bVar1 == 0x90) goto LAB_003c9c82;" if (parenthesized_expression "(bVar1 == 0x90)" ( (binary_expression "bVar1 == 0x90" identifier == number_literal) )) (goto_statement "goto LAB_003c9c82;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x9c) goto LAB_003ca670;" if (parenthesized_expression "(bVar1 == 0x9c)" ( (binary_expression "bVar1 == 0x9c" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }" { (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;) (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) (if_statement "if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }" if (parenthesized_expression "((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1))" ( (binary_expression "(2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)" (parenthesized_expression "(2 < local_47c)" ( (binary_expression "2 < local_47c" number_literal < identifier) )) && (parenthesized_expression "(uVar5 = local_470 & 0xffff, (int)local_470 < 1)" ( (comma_expression "uVar5 = local_470 & 0xffff, (int)local_470 < 1" (assignment_expression "uVar5 = local_470 & 0xffff" identifier = (binary_expression "local_470 & 0xffff" identifier & number_literal)) , (binary_expression "(int)local_470 < 1" (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = local_518;\n        }" { (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) })) (expression_statement "local_518 = uVar5;" (assignment_expression "local_518 = uVar5" identifier = identifier) ;) (expression_statement "uVar5 = local_514;" (assignment_expression "uVar5 = local_514" identifier = identifier) ;) (if_statement "if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }" if (parenthesized_expression "((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1))" ( (binary_expression "(3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)" (parenthesized_expression "(3 < local_47c)" ( (binary_expression "3 < local_47c" number_literal < identifier) )) && (parenthesized_expression "(uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)" ( (comma_expression "uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1" (assignment_expression "uVar5 = uStack_46c & 0xffff" identifier = (binary_expression "uStack_46c & 0xffff" identifier & number_literal)) , (binary_expression "(int)uStack_46c < 1" (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = local_514;\n        }" { (expression_statement "uVar5 = local_514;" (assignment_expression "uVar5 = local_514" identifier = identifier) ;) })) (expression_statement "local_514 = uVar5;" (assignment_expression "local_514 = uVar5" identifier = identifier) ;) (if_statement "if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }" if (parenthesized_expression "(((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514))" ( (binary_expression "((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)" (parenthesized_expression "((int)local_52c < (int)local_518)" ( (binary_expression "(int)local_52c < (int)local_518" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)uVar19 < (int)local_514)" ( (binary_expression "(int)uVar19 < (int)local_514" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }" { (expression_statement "uVar5 = local_52c;" (assignment_expression "uVar5 = local_52c" identifier = identifier) ;) (if_statement "if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }" if (parenthesized_expression "((int)local_52c <= (int)local_518)" ( (binary_expression "(int)local_52c <= (int)local_518" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar5 = local_518;\n          }" { (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) })) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" identifier = identifier) ;) (if_statement "if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }" if (parenthesized_expression "((int)uVar19 <= (int)local_514)" ( (binary_expression "(int)uVar19 <= (int)local_514" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar21 = local_514;\n          }" { (expression_statement "uVar21 = local_514;" (assignment_expression "uVar21 = local_514" identifier = identifier) ;) })) (expression_statement "lVar6 = (long)(int)uVar21;" (assignment_expression "lVar6 = (long)(int)uVar21" identifier = (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "lVar20 = (long)(int)uVar5;" (assignment_expression "lVar20 = (long)(int)uVar5" identifier = (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);" (assignment_expression "iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier = (call_expression "SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier (argument_list "(param_1,lVar20,lVar6,param_8)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) goto LAB_003ca670;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6)" identifier = (cast_expression "(void *)AcquireQuantumMemory(lVar20,lVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(lVar20,lVar6)" identifier (argument_list "(lVar20,lVar6)" ( identifier , identifier ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "memset(pvVar7,0,lVar6 * lVar20);" (call_expression "memset(pvVar7,0,lVar6 * lVar20)" identifier (argument_list "(pvVar7,0,lVar6 * lVar20)" ( identifier , number_literal , (binary_expression "lVar6 * lVar20" identifier * identifier) ))) ;) (if_statement "if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);" do (compound_statement "{\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            }" { (expression_statement "memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);" (call_expression "memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c)" identifier (argument_list "((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c)" ( (cast_expression "(void *)((long)iVar12 + (long)pvVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar12 + (long)pvVar7)" ( (binary_expression "(long)iVar12 + (long)pvVar7" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(void *)((long)iVar17 + (long)local_550)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar17 + (long)local_550)" ( (binary_expression "(long)iVar17 + (long)local_550" (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + local_52c;" (assignment_expression "iVar17 = iVar17 + local_52c" identifier = (binary_expression "iVar17 + local_52c" identifier + identifier)) ;) (expression_statement "iVar12 = iVar12 + uVar5;" (assignment_expression "iVar12 = iVar12 + uVar5" identifier = (binary_expression "iVar12 + uVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar19 != uVar18)" ( (binary_expression "uVar19 != uVar18" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" identifier = identifier) ;) (expression_statement "local_52c = uVar5;" (assignment_expression "local_52c = uVar5" identifier = identifier) ;) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" identifier = identifier) ;) })) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;) })) (if_statement "if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" if (parenthesized_expression "(bVar1 != 0x21)" ( (binary_expression "bVar1 != 0x21" identifier != number_literal) )) (compound_statement "{\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" { (if_statement "if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" if (parenthesized_expression "(bVar1 == 0x23)" ( (binary_expression "bVar1 == 0x23" identifier == number_literal) )) (compound_statement "{\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }" { (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;) (if_statement "if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }" if (parenthesized_expression "(0 < local_47c)" ( (binary_expression "0 < local_47c" number_literal < identifier) )) (compound_statement "{\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }" { (expression_statement "iVar17 = 0xff;" (assignment_expression "iVar17 = 0xff" identifier = number_literal) ;) (if_statement "if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }" if (parenthesized_expression "((int)local_478 < 0x100)" ( (binary_expression "(int)local_478 < 0x100" (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar17 = (int)local_478;\n            }" { (expression_statement "iVar17 = (int)local_478;" (assignment_expression "iVar17 = (int)local_478" identifier = (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (if_statement "if (-1 < iVar17) {\n              local_51c = iVar17;\n            }" if (parenthesized_expression "(-1 < iVar17)" ( (binary_expression "-1 < iVar17" number_literal < identifier) )) (compound_statement "{\n              local_51c = iVar17;\n            }" { (expression_statement "local_51c = iVar17;" (assignment_expression "local_51c = iVar17" identifier = identifier) ;) })) })) (if_statement "if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }" if (parenthesized_expression "(4 < local_47c)" ( (binary_expression "4 < local_47c" number_literal < identifier) )) (compound_statement "{\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }" { (if_statement "if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" if (parenthesized_expression "(local_478._4_4_ == 1)" ( (binary_expression "local_478._4_4_ == 1" (field_expression "local_478._4_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }" { (if_statement "if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }" if (parenthesized_expression "(0x168 < (int)local_470)" ( (binary_expression "0x168 < (int)local_470" number_literal < (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                local_470 = 0x168;\n              }" { (expression_statement "local_470 = 0x168;" (assignment_expression "local_470 = 0x168" identifier = number_literal) ;) })) (if_statement "if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }" if (parenthesized_expression "(100 < (int)uStack_46c)" ( (binary_expression "100 < (int)uStack_46c" number_literal < (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uStack_46c = 100;\n              }" { (expression_statement "uStack_46c = 100;" (assignment_expression "uStack_46c = 100" identifier = number_literal) ;) })) (if_statement "if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" if (parenthesized_expression "((int)local_468 < 0x65)" ( (binary_expression "(int)local_468 < 0x65" (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }" { (if_statement "if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }" if (parenthesized_expression "((int)local_468 != 0)" ( (binary_expression "(int)local_468 != 0" (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }" { (expression_statement "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);" (assignment_expression "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168)" identifier = (cast_expression "(int)(((long)(int)local_470 * 100) / 0x168)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((long)(int)local_470 * 100) / 0x168)" ( (binary_expression "((long)(int)local_470 * 100) / 0x168" (parenthesized_expression "((long)(int)local_470 * 100)" ( (binary_expression "(long)(int)local_470 * 100" (cast_expression "(long)(int)local_470" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) )) / number_literal) )))) ;) (expression_statement "iVar12 = (int)local_468;" (assignment_expression "iVar12 = (int)local_468" identifier = (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_003ca0ae;" goto statement_identifier ;) })) (expression_statement "iVar12 = (int)(uStack_46c * 0xff) / 100;" (assignment_expression "iVar12 = (int)(uStack_46c * 0xff) / 100" identifier = (binary_expression "(int)(uStack_46c * 0xff) / 100" (cast_expression "(int)(uStack_46c * 0xff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uStack_46c * 0xff)" ( (binary_expression "uStack_46c * 0xff" identifier * number_literal) ))) / number_literal)) ;) (expression_statement "iVar16 = iVar12;" (assignment_expression "iVar16 = iVar12" identifier = identifier) ;) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" identifier = identifier) ;) }) (else_clause "else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" else (compound_statement "{\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" { (expression_statement "local_468 = CONCAT44(local_468._4_4_,100);" (assignment_expression "local_468 = CONCAT44(local_468._4_4_,100)" identifier = (call_expression "CONCAT44(local_468._4_4_,100)" identifier (argument_list "(local_468._4_4_,100)" ( (field_expression "local_468._4_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);" (assignment_expression "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168)" identifier = (cast_expression "(int)(((long)(int)local_470 * 100) / 0x168)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((long)(int)local_470 * 100) / 0x168)" ( (binary_expression "((long)(int)local_470 * 100) / 0x168" (parenthesized_expression "((long)(int)local_470 * 100)" ( (binary_expression "(long)(int)local_470 * 100" (cast_expression "(long)(int)local_470" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) )) / number_literal) )))) ;) (expression_statement "iVar12 = 100;" (assignment_expression "iVar12 = 100" identifier = number_literal) ;) (labeled_statement "LAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" statement_identifier : (if_statement "if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" if (parenthesized_expression "((int)uStack_46c < 0x33)" ( (binary_expression "(int)uStack_46c < 0x33" (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }" { (expression_statement "lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;" (assignment_expression "lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32" identifier = (binary_expression "(long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32" (binary_expression "(long)(iVar12 + 100) * (long)(int)uStack_46c" (cast_expression "(long)(iVar12 + 100)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar12 + 100)" ( (binary_expression "iVar12 + 100" identifier + number_literal) ))) * (cast_expression "(long)(int)uStack_46c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) ;) (expression_statement "iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);" (assignment_expression "iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f)" identifier = (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar6 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar6 >> 0x3f)" ( (binary_expression "lVar6 >> 0x3f" identifier >> number_literal) ))))) ;) }) (else_clause "else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" else (compound_statement "{\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" { (expression_statement "lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;" (assignment_expression "lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32" identifier = (binary_expression "(long)iVar12 * (long)(int)uStack_46c + 0x32" (binary_expression "(long)iVar12 * (long)(int)uStack_46c" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * (cast_expression "(long)(int)uStack_46c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) ;) (expression_statement "iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));" (assignment_expression "iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" identifier = (binary_expression "(uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" (parenthesized_expression "(uStack_46c + iVar12)" ( (binary_expression "uStack_46c + iVar12" identifier + identifier) )) - (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar6 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar6 >> 0x3f)" ( (binary_expression "lVar6 >> 0x3f" identifier >> number_literal) )))) )))) ;) })))) (expression_statement "iVar10 = uStack_46c * 2 - iVar16;" (assignment_expression "iVar10 = uStack_46c * 2 - iVar16" identifier = (binary_expression "uStack_46c * 2 - iVar16" (binary_expression "uStack_46c * 2" identifier * number_literal) - identifier)) ;) (expression_statement "iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);" (assignment_expression "iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21)" identifier = (call_expression "FUN_003c9609(iVar10,iVar16,iVar17 + 0x21)" identifier (argument_list "(iVar10,iVar16,iVar17 + 0x21)" ( identifier , identifier , (binary_expression "iVar17 + 0x21" identifier + number_literal) )))) ;) (expression_statement "iVar12 = (iVar12 * 0xff + 0x32) / 100;" (assignment_expression "iVar12 = (iVar12 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar12 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar12 * 0xff + 0x32)" ( (binary_expression "iVar12 * 0xff + 0x32" (binary_expression "iVar12 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) (expression_statement "iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);" (assignment_expression "iVar4 = FUN_003c9609(iVar10,iVar16,iVar17)" identifier = (call_expression "FUN_003c9609(iVar10,iVar16,iVar17)" identifier (argument_list "(iVar10,iVar16,iVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);" (assignment_expression "iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21)" identifier = (call_expression "FUN_003c9609(iVar10,iVar16,iVar17 + -0x21)" identifier (argument_list "(iVar10,iVar16,iVar17 + -0x21)" ( identifier , identifier , (binary_expression "iVar17 + -0x21" identifier + number_literal) )))) ;) (expression_statement "iVar16 = (iVar17 * 0xff + 0x32) / 100;" (assignment_expression "iVar16 = (iVar17 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar17 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar17 * 0xff + 0x32)" ( (binary_expression "iVar17 * 0xff + 0x32" (binary_expression "iVar17 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) (expression_statement "iVar17 = (iVar4 * 0xff + 0x32) / 100;" (assignment_expression "iVar17 = (iVar4 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar4 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar4 * 0xff + 0x32)" ( (binary_expression "iVar4 * 0xff + 0x32" (binary_expression "iVar4 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) }))) (expression_statement "(&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;" (assignment_expression "(&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16" (subscript_expression "(&uStack_448)[local_51c]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = (binary_expression "iVar12 * 0x10000 + iVar17 * 0x100 + iVar16" (binary_expression "iVar12 * 0x10000 + iVar17 * 0x100" (binary_expression "iVar12 * 0x10000" identifier * number_literal) + (binary_expression "iVar17 * 0x100" identifier * number_literal)) + identifier)) ;) }) (else_clause "else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" else (if_statement "if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" if (parenthesized_expression "(local_478._4_4_ == 2)" ( (binary_expression "local_478._4_4_ == 2" (field_expression "local_478._4_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" { (if_statement "if (100 < (int)local_470) {\n                local_470 = 100;\n              }" if (parenthesized_expression "(100 < (int)local_470)" ( (binary_expression "100 < (int)local_470" number_literal < (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                local_470 = 100;\n              }" { (expression_statement "local_470 = 100;" (assignment_expression "local_470 = 100" identifier = number_literal) ;) })) (if_statement "if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }" if (parenthesized_expression "(100 < (int)uStack_46c)" ( (binary_expression "100 < (int)uStack_46c" number_literal < (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uStack_46c = 100;\n              }" { (expression_statement "uStack_46c = 100;" (assignment_expression "uStack_46c = 100" identifier = number_literal) ;) })) (if_statement "if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }" if (parenthesized_expression "(100 < (int)local_468)" ( (binary_expression "100 < (int)local_468" number_literal < (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }" { (expression_statement "local_468 = CONCAT44(local_468._4_4_,100);" (assignment_expression "local_468 = CONCAT44(local_468._4_4_,100)" identifier = (call_expression "CONCAT44(local_468._4_4_,100)" identifier (argument_list "(local_468._4_4_,100)" ( (field_expression "local_468._4_4_" identifier . field_identifier) , number_literal )))) ;) })) (expression_statement "lVar6 = (long)(int)local_470 * 0xff + 0x32;" (assignment_expression "lVar6 = (long)(int)local_470 * 0xff + 0x32" identifier = (binary_expression "(long)(int)local_470 * 0xff + 0x32" (binary_expression "(long)(int)local_470 * 0xff" (cast_expression "(long)(int)local_470" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) + number_literal)) ;) (expression_statement "lVar20 = (long)(int)local_468 * 0xff + 0x32;" (assignment_expression "lVar20 = (long)(int)local_468 * 0xff + 0x32" identifier = (binary_expression "(long)(int)local_468 * 0xff + 0x32" (binary_expression "(long)(int)local_468 * 0xff" (cast_expression "(long)(int)local_468" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) + number_literal)) ;) (expression_statement "lVar14 = (long)(int)uStack_46c * 0xff + 0x32;" (assignment_expression "lVar14 = (long)(int)uStack_46c * 0xff + 0x32" identifier = (binary_expression "(long)(int)uStack_46c * 0xff + 0x32" (binary_expression "(long)(int)uStack_46c * 0xff" (cast_expression "(long)(int)uStack_46c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) + number_literal)) ;) (expression_statement "(&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;" (assignment_expression "(&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (subscript_expression "(&uStack_448)[local_51c]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f))" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar6 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar6 >> 0x3f)" ( (binary_expression "lVar6 >> 0x3f" identifier >> number_literal) )))) )) * number_literal) + (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar20)" identifier (argument_list "(lVar20)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar20 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar20 >> 0x3f)" ( (binary_expression "lVar20 >> 0x3f" identifier >> number_literal) )))) ))) + (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar14)" identifier (argument_list "(lVar14)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar14 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar14 >> 0x3f)" ( (binary_expression "lVar14 >> 0x3f" identifier >> number_literal) )))) )) * number_literal))) ;) })))) })) }) (else_clause "else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" else (if_statement "if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" if (parenthesized_expression "(bVar1 == 0x24)" ( (binary_expression "bVar1 == 0x24" identifier == number_literal) )) (compound_statement "{\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" { (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" else (compound_statement "{\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" { (if_statement "if (bVar1 != 0x2d) goto LAB_003c9c26;" if (parenthesized_expression "(bVar1 != 0x2d)" ( (binary_expression "bVar1 != 0x2d" identifier != number_literal) )) (goto_statement "goto LAB_003c9c26;" goto statement_identifier ;)) (expression_statement "local_4c8 = local_4c8 + 6;" (assignment_expression "local_4c8 = local_4c8 + 6" identifier = (binary_expression "local_4c8 + 6" identifier + number_literal)) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;) })) (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;) (if_statement "if (local_47c < 1) goto LAB_003c9c9d;" if (parenthesized_expression "(local_47c < 1)" ( (binary_expression "local_47c < 1" identifier < number_literal) )) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;)) (if_statement "if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;" if (parenthesized_expression "(((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))" ( (binary_expression "((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1))" (parenthesized_expression "((int)local_478 < 1)" ( (binary_expression "(int)local_478 < 1" (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1))" ( (comma_expression "local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)" (assignment_expression "local_520 = (int)local_478" identifier = (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(long)(int)local_478 <= (long)(~uVar9 - 1)" (cast_expression "(long)(int)local_478" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier)) <= (cast_expression "(long)(~uVar9 - 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(~uVar9 - 1)" ( (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) ))))) ))) )) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;)) (labeled_statement "LAB_003ca670:\n      uVar5 = local_4a0 + 1U;" statement_identifier : (expression_statement "uVar5 = local_4a0 + 1U;" (assignment_expression "uVar5 = local_4a0 + 1U" identifier = (binary_expression "local_4a0 + 1U" identifier + number_literal)) ;)) (if_statement "if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }" if (parenthesized_expression "((int)(local_4a0 + 1U) <= (int)local_518)" ( (binary_expression "(int)(local_4a0 + 1U) <= (int)local_518" (cast_expression "(int)(local_4a0 + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_4a0 + 1U)" ( (binary_expression "local_4a0 + 1U" identifier + number_literal) ))) <= (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar5 = local_518;\n      }" { (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) })) (expression_statement "uVar21 = local_4bc + 1U;" (assignment_expression "uVar21 = local_4bc + 1U" identifier = (binary_expression "local_4bc + 1U" identifier + number_literal)) ;) (if_statement "if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }" if (parenthesized_expression "((int)(local_4bc + 1U) <= (int)local_514)" ( (binary_expression "(int)(local_4bc + 1U) <= (int)local_514" (cast_expression "(int)(local_4bc + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_4bc + 1U)" ( (binary_expression "local_4bc + 1U" identifier + number_literal) ))) <= (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar21 = local_514;\n      }" { (expression_statement "uVar21 = local_514;" (assignment_expression "uVar21 = local_514" identifier = identifier) ;) })) (if_statement "if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }" if (parenthesized_expression "(((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19))" ( (binary_expression "((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)" (parenthesized_expression "((int)uVar5 < (int)local_52c)" ( (binary_expression "(int)uVar5 < (int)local_52c" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)uVar21 < (int)uVar19)" ( (binary_expression "(int)uVar21 < (int)uVar19" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }" { (expression_statement "sVar11 = (size_t)(int)uVar5;" (assignment_expression "sVar11 = (size_t)(int)uVar5" identifier = (cast_expression "(size_t)(int)uVar5" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);" (assignment_expression "iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8)" identifier = (call_expression "SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8)" identifier (argument_list "(param_1,sVar11,(long)(int)uVar21,param_8)" ( identifier , identifier , (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21)" identifier = (cast_expression "(void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar11,(long)(int)uVar21)" identifier (argument_list "(sVar11,(long)(int)uVar21)" ( identifier , (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);" do (compound_statement "{\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          }" { (expression_statement "memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);" (call_expression "memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11)" identifier (argument_list "((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11)" ( (cast_expression "(void *)((long)iVar3 + (long)pvVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar3 + (long)pvVar7)" ( (binary_expression "(long)iVar3 + (long)pvVar7" (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(void *)((long)iVar17 + (long)local_550)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar17 + (long)local_550)" ( (binary_expression "(long)iVar17 + (long)local_550" (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , identifier ))) ;) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + local_52c;" (assignment_expression "iVar17 = iVar17 + local_52c" identifier = (binary_expression "iVar17 + local_52c" identifier + identifier)) ;) (expression_statement "iVar3 = iVar3 + uVar5;" (assignment_expression "iVar3 = iVar3 + uVar5" identifier = (binary_expression "iVar3 + uVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar21 != uVar19)" ( (binary_expression "uVar21 != uVar19" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" identifier = identifier) ;) (expression_statement "local_52c = uVar5;" (assignment_expression "local_52c = uVar5" identifier = identifier) ;) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" identifier = identifier) ;) })) (expression_statement "*param_3 = local_550;" (assignment_expression "*param_3 = local_550" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = (long)(int)local_52c;" (assignment_expression "*param_4 = (long)(int)local_52c" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_5 = (long)(int)uVar19;" (assignment_expression "*param_5 = (long)(int)uVar19" (pointer_expression "*param_5" * identifier) = (cast_expression "(long)(int)uVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_7 = (long)(local_4c4 + 1);" (assignment_expression "*param_7 = (long)(local_4c4 + 1)" (pointer_expression "*param_7" * identifier) = (cast_expression "(long)(local_4c4 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_4c4 + 1)" ( (binary_expression "local_4c4 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);" (assignment_expression "lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4)" identifier = (call_expression "AcquireQuantumMemory((long)(local_4c4 + 1),4)" identifier (argument_list "((long)(local_4c4 + 1),4)" ( (cast_expression "(long)(local_4c4 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_4c4 + 1)" ( (binary_expression "local_4c4 + 1" identifier + number_literal) ))) , number_literal )))) ;) (expression_statement "*param_6 = lVar6;" (assignment_expression "*param_6 = lVar6" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }" { (expression_statement "local_47c = 0;" (assignment_expression "local_47c = 0" identifier = number_literal) ;) (if_statement "if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" if (parenthesized_expression "(*param_7 < 1)" ( (binary_expression "*param_7 < 1" (pointer_expression "*param_7" * identifier) < number_literal) )) (compound_statement "{\n          iVar3 = 1;\n        }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" else (compound_statement "{\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" { (do_statement "do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);" do (compound_statement "{\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          }" { (expression_statement "*(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);" (assignment_expression "*(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" (pointer_expression "*(char *)(*param_6 + (long)(local_47c * 4))" * (cast_expression "(char *)(*param_6 + (long)(local_47c * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + (long)(local_47c * 4))" ( (binary_expression "*param_6 + (long)(local_47c * 4)" (pointer_expression "*param_6" * identifier) + (cast_expression "(long)(local_47c * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c * 4)" ( (binary_expression "local_47c * 4" identifier * number_literal) )))) )))) = (cast_expression "(char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" * (cast_expression "(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_448 + (long)local_47c * 4 + 2)" ( (binary_expression "(long)&uStack_448 + (long)local_47c * 4 + 2" (binary_expression "(long)&uStack_448 + (long)local_47c * 4" (cast_expression "(long)&uStack_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_448" & identifier)) + (binary_expression "(long)local_47c * 4" (cast_expression "(long)local_47c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))))) ;) (expression_statement "*(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);" (assignment_expression "*(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8)" (pointer_expression "*(char *)(*param_6 + 1 + (long)(local_47c * 4))" * (cast_expression "(char *)(*param_6 + 1 + (long)(local_47c * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 1 + (long)(local_47c * 4))" ( (binary_expression "*param_6 + 1 + (long)(local_47c * 4)" (binary_expression "*param_6 + 1" (pointer_expression "*param_6" * identifier) + number_literal) + (cast_expression "(long)(local_47c * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c * 4)" ( (binary_expression "local_47c * 4" identifier * number_literal) )))) )))) = (cast_expression "(char)((uint)(&uStack_448)[local_47c] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(&uStack_448)[local_47c] >> 8)" ( (binary_expression "(uint)(&uStack_448)[local_47c] >> 8" (subscript_expression "(uint)(&uStack_448)[local_47c]" (call_expression "(uint)(&uStack_448)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) ))) [ identifier ]) >> number_literal) )))) ;) (expression_statement "*(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];" (assignment_expression "*(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c]" (pointer_expression "*(char *)(*param_6 + 2 + (long)(local_47c * 4))" * (cast_expression "(char *)(*param_6 + 2 + (long)(local_47c * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 2 + (long)(local_47c * 4))" ( (binary_expression "*param_6 + 2 + (long)(local_47c * 4)" (binary_expression "*param_6 + 2" (pointer_expression "*param_6" * identifier) + number_literal) + (cast_expression "(long)(local_47c * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c * 4)" ( (binary_expression "local_47c * 4" identifier * number_literal) )))) )))) = (cast_expression "(char)(&uStack_448)[local_47c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&uStack_448)[local_47c]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]))) ;) (expression_statement "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;" (assignment_expression "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff" (pointer_expression "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2))" * (cast_expression "(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 3 + (long)(local_47c << 2))" ( (binary_expression "*param_6 + 3 + (long)(local_47c << 2)" (binary_expression "*param_6 + 3" (pointer_expression "*param_6" * identifier) + number_literal) + (cast_expression "(long)(local_47c << 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c << 2)" ( (binary_expression "local_47c << 2" identifier << number_literal) )))) )))) = number_literal) ;) (expression_statement "local_47c = local_47c + 1;" (assignment_expression "local_47c = local_47c + 1" identifier = (binary_expression "local_47c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long)local_47c < *param_7)" ( (binary_expression "(long)local_47c < *param_7" (cast_expression "(long)local_47c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (pointer_expression "*param_7" * identifier)) )) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) })) })) })) (labeled_statement "LAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType\nsixel_decode(Image *image,uchar *p,uchar **pixels,size_t *pwidth,size_t *pheight,uchar **palette,\n            size_t *ncolors,ExceptionInfo *exception)\n\n{\n  byte *pbVar1;\n  uchar uVar2;\n  byte bVar3;\n  long lVar4;\n  uint uVar5;\n  MagickBooleanType MVar6;\n  int iVar7;\n  uint uVar8;\n  long lVar9;\n  uchar *puVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  int iVar14;\n  size_t __n;\n  int iVar15;\n  long lVar16;\n  ulong uVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  size_t sVar22;\n  uint uVar23;\n  size_t sVar24;\n  uint uVar25;\n  long in_FS_OFFSET;\n  bool bVar26;\n  uchar *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int n;\n  int param [10];\n  int sixel_palet [256];\n  \n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  param[0] = 0;\n  param[1] = 0;\n  param[2] = 0;\n  param[3] = 0;\n  param[4] = 0;\n  param[5] = 0;\n  param[6] = 0;\n  param[7] = 0;\n  param[8] = 0;\n  param[9] = 0;\n  uVar13 = 0xffffffffffffffff;\n  puVar10 = p;\n  do {\n    if (uVar13 == 0) break;\n    uVar13 = uVar13 - 1;\n    uVar2 = *puVar10;\n    puVar10 = puVar10 + 1;\n  } while (uVar2 != '\0');\n  MVar6 = SetImageExtent(image,0x800,0x800,exception);\n  if (MVar6 != MagickFalse) {\n    local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);\n    MVar6 = MagickFalse;\n    if (local_550 != (uchar *)0x0) {\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (lVar4 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType\nsixel_decode(Image *image,uchar *p,uchar **pixels,size_t *pwidth,size_t *pheight,uchar **palette,\n            size_t *ncolors,ExceptionInfo *exception)\n\n{\n  byte *pbVar1;\n  uchar uVar2;\n  byte bVar3;\n  long lVar4;\n  uint uVar5;\n  MagickBooleanType MVar6;\n  int iVar7;\n  uint uVar8;\n  long lVar9;\n  uchar *puVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  int iVar14;\n  size_t __n;\n  int iVar15;\n  long lVar16;\n  ulong uVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  size_t sVar22;\n  uint uVar23;\n  size_t sVar24;\n  uint uVar25;\n  long in_FS_OFFSET;\n  bool bVar26;\n  uchar *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int n;\n  int param [10];\n  int sixel_palet [256];\n  \n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  param[0] = 0;\n  param[1] = 0;\n  param[2] = 0;\n  param[3] = 0;\n  param[4] = 0;\n  param[5] = 0;\n  param[6] = 0;\n  param[7] = 0;\n  param[8] = 0;\n  param[9] = 0;\n  uVar13 = 0xffffffffffffffff;\n  puVar10 = p;\n  do {\n    if (uVar13 == 0) break;\n    uVar13 = uVar13 - 1;\n    uVar2 = *puVar10;\n    puVar10 = puVar10 + 1;\n  } while (uVar2 != '\0');\n  MVar6 = SetImageExtent(image,0x800,0x800,exception);\n  if (MVar6 != MagickFalse) {\n    local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);\n    MVar6 = MagickFalse;\n    if (local_550 != (uchar *)0x0) {\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (lVar4 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "sixel_decode(Image *image,uchar *p,uchar **pixels,size_t *pwidth,size_t *pheight,uchar **palette,\n            size_t *ncolors,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,uchar *p,uchar **pixels,size_t *pwidth,size_t *pheight,uchar **palette,\n            size_t *ncolors,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "uchar *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "uchar **pixels" type_identifier (pointer_declarator "**pixels" * (pointer_declarator "*pixels" * identifier))) , (parameter_declaration "size_t *pwidth" primitive_type (pointer_declarator "*pwidth" * identifier)) , (parameter_declaration "size_t *pheight" primitive_type (pointer_declarator "*pheight" * identifier)) , (parameter_declaration "uchar **palette" type_identifier (pointer_declarator "**palette" * (pointer_declarator "*palette" * identifier))) , (parameter_declaration "size_t *ncolors" primitive_type (pointer_declarator "*ncolors" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  uchar uVar2;\n  byte bVar3;\n  long lVar4;\n  uint uVar5;\n  MagickBooleanType MVar6;\n  int iVar7;\n  uint uVar8;\n  long lVar9;\n  uchar *puVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  int iVar14;\n  size_t __n;\n  int iVar15;\n  long lVar16;\n  ulong uVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  size_t sVar22;\n  uint uVar23;\n  size_t sVar24;\n  uint uVar25;\n  long in_FS_OFFSET;\n  bool bVar26;\n  uchar *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int n;\n  int param [10];\n  int sixel_palet [256];\n  \n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  param[0] = 0;\n  param[1] = 0;\n  param[2] = 0;\n  param[3] = 0;\n  param[4] = 0;\n  param[5] = 0;\n  param[6] = 0;\n  param[7] = 0;\n  param[8] = 0;\n  param[9] = 0;\n  uVar13 = 0xffffffffffffffff;\n  puVar10 = p;\n  do {\n    if (uVar13 == 0) break;\n    uVar13 = uVar13 - 1;\n    uVar2 = *puVar10;\n    puVar10 = puVar10 + 1;\n  } while (uVar2 != '\0');\n  MVar6 = SetImageExtent(image,0x800,0x800,exception);\n  if (MVar6 != MagickFalse) {\n    local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);\n    MVar6 = MagickFalse;\n    if (local_550 != (uchar *)0x0) {\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (lVar4 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "uchar uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "MagickBooleanType MVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "size_t sVar24;" primitive_type identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "uchar *local_550;" type_identifier (pointer_declarator "*local_550" * identifier) ;) (declaration "uint local_52c;" type_identifier identifier ;) (declaration "int local_520;" primitive_type identifier ;) (declaration "int local_51c;" primitive_type identifier ;) (declaration "uint local_518;" type_identifier identifier ;) (declaration "uint local_514;" type_identifier identifier ;) (declaration "int local_4c8;" primitive_type identifier ;) (declaration "int local_4c4;" primitive_type identifier ;) (declaration "int local_4bc;" primitive_type identifier ;) (declaration "int local_4a0;" primitive_type identifier ;) (declaration "int n;" primitive_type identifier ;) (declaration "int param [10];" primitive_type (array_declarator "param [10]" identifier [ number_literal ]) ;) (declaration "int sixel_palet [256];" primitive_type (array_declarator "sixel_palet [256]" identifier [ number_literal ]) ;) (expression_statement "lVar4 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar4 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "param[0] = 0;" (assignment_expression "param[0] = 0" (subscript_expression "param[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[1] = 0;" (assignment_expression "param[1] = 0" (subscript_expression "param[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[2] = 0;" (assignment_expression "param[2] = 0" (subscript_expression "param[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[3] = 0;" (assignment_expression "param[3] = 0" (subscript_expression "param[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[4] = 0;" (assignment_expression "param[4] = 0" (subscript_expression "param[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[5] = 0;" (assignment_expression "param[5] = 0" (subscript_expression "param[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[6] = 0;" (assignment_expression "param[6] = 0" (subscript_expression "param[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[7] = 0;" (assignment_expression "param[7] = 0" (subscript_expression "param[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[8] = 0;" (assignment_expression "param[8] = 0" (subscript_expression "param[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param[9] = 0;" (assignment_expression "param[9] = 0" (subscript_expression "param[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "puVar10 = p;" (assignment_expression "puVar10 = p" identifier = identifier) ;) (do_statement "do {\n    if (uVar13 == 0) break;\n    uVar13 = uVar13 - 1;\n    uVar2 = *puVar10;\n    puVar10 = puVar10 + 1;\n  } while (uVar2 != '\0');" do (compound_statement "{\n    if (uVar13 == 0) break;\n    uVar13 = uVar13 - 1;\n    uVar2 = *puVar10;\n    puVar10 = puVar10 + 1;\n  }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "uVar2 = *puVar10;" (assignment_expression "uVar2 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != '\0')" ( (binary_expression "uVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "MVar6 = SetImageExtent(image,0x800,0x800,exception);" (assignment_expression "MVar6 = SetImageExtent(image,0x800,0x800,exception)" identifier = (call_expression "SetImageExtent(image,0x800,0x800,exception)" identifier (argument_list "(image,0x800,0x800,exception)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (MVar6 != MagickFalse) {\n    local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);\n    MVar6 = MagickFalse;\n    if (local_550 != (uchar *)0x0) {\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(MVar6 != MagickFalse)" ( (binary_expression "MVar6 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);\n    MVar6 = MagickFalse;\n    if (local_550 != (uchar *)0x0) {\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }\n  }" { (expression_statement "local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800);" (assignment_expression "local_550 = (uchar *)AcquireQuantumMemory(0x800,0x800)" identifier = (cast_expression "(uchar *)AcquireQuantumMemory(0x800,0x800)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x800,0x800)" identifier (argument_list "(0x800,0x800)" ( number_literal , number_literal ))))) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (if_statement "if (local_550 != (uchar *)0x0) {\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }" if (parenthesized_expression "(local_550 != (uchar *)0x0)" ( (binary_expression "local_550 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar9 = 0;\n      do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);\n      iVar20 = 0;\n      iVar19 = 0x34;\n      do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);\n      iVar19 = 0;\n      iVar20 = 0xe8;\n      do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);\n      n = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar19 = 0;\n      uVar23 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }\n      if (bVar3 == 0x90) goto LAB_003c9c82;\n      if (bVar3 == 0x9c) goto LAB_003ca670;\n      if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      p = get_params(p + 1,param,&n);\n      if (n < 1) goto LAB_003c9c9d;\n      if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar8 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }\n      uVar25 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }\n      if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }\n      *pixels = local_550;\n      *pwidth = (long)(int)local_52c;\n      *pheight = (long)(int)uVar23;\n      *ncolors = (long)(local_4c4 + 1);\n      puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *palette = puVar10;\n      MVar6 = MagickFalse;\n      if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }\n    }" { (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      } while (lVar9 != 0x40);" do (compound_statement "{\n        *(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);\n        lVar9 = lVar9 + 4;\n      }" { (expression_statement "*(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9);" (assignment_expression "*(undefined4 *)((long)sixel_palet + lVar9) =\n             *(undefined4 *)((long)sixel_default_color_table + lVar9)" (pointer_expression "*(undefined4 *)((long)sixel_palet + lVar9)" * (cast_expression "(undefined4 *)((long)sixel_palet + lVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)sixel_palet + lVar9)" ( (binary_expression "(long)sixel_palet + lVar9" (cast_expression "(long)sixel_palet" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)sixel_default_color_table + lVar9)" * (cast_expression "(undefined4 *)((long)sixel_default_color_table + lVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)sixel_default_color_table + lVar9)" ( (binary_expression "(long)sixel_default_color_table + lVar9" (cast_expression "(long)sixel_default_color_table" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "lVar9 = lVar9 + 4;" (assignment_expression "lVar9 = lVar9 + 4" identifier = (binary_expression "lVar9 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0x40)" ( (binary_expression "lVar9 != 0x40" identifier != number_literal) )) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar19 = 0x34;" (assignment_expression "iVar19 = 0x34" identifier = number_literal) ;) (do_statement "do {\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      } while (iVar20 != 0x1320000);" do (compound_statement "{\n        iVar18 = iVar19 + -0x24;\n        iVar15 = iVar20;\n        do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);\n        iVar19 = iVar19 + 0x24;\n        iVar20 = iVar20 + 0x330000;\n      }" { (expression_statement "iVar18 = iVar19 + -0x24;" (assignment_expression "iVar18 = iVar19 + -0x24" identifier = (binary_expression "iVar19 + -0x24" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar20;" (assignment_expression "iVar15 = iVar20" identifier = identifier) ;) (do_statement "do {\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        } while (iVar18 != iVar19);" do (compound_statement "{\n          iVar7 = iVar15;\n          iVar14 = iVar18;\n          do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);\n          iVar18 = iVar18 + 6;\n          iVar15 = iVar15 + 0x3300;\n        }" { (expression_statement "iVar7 = iVar15;" (assignment_expression "iVar7 = iVar15" identifier = identifier) ;) (expression_statement "iVar14 = iVar18;" (assignment_expression "iVar14 = iVar18" identifier = identifier) ;) (do_statement "do {\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          } while (iVar7 != iVar15 + 0x132);" do (compound_statement "{\n            sixel_palet[iVar14] = iVar7;\n            iVar14 = iVar14 + 1;\n            iVar7 = iVar7 + 0x33;\n          }" { (expression_statement "sixel_palet[iVar14] = iVar7;" (assignment_expression "sixel_palet[iVar14] = iVar7" (subscript_expression "sixel_palet[iVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 0x33;" (assignment_expression "iVar7 = iVar7 + 0x33" identifier = (binary_expression "iVar7 + 0x33" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != iVar15 + 0x132)" ( (binary_expression "iVar7 != iVar15 + 0x132" identifier != (binary_expression "iVar15 + 0x132" identifier + number_literal)) )) ;) (expression_statement "iVar18 = iVar18 + 6;" (assignment_expression "iVar18 = iVar18 + 6" identifier = (binary_expression "iVar18 + 6" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar15 + 0x3300;" (assignment_expression "iVar15 = iVar15 + 0x3300" identifier = (binary_expression "iVar15 + 0x3300" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar19)" ( (binary_expression "iVar18 != iVar19" identifier != identifier) )) ;) (expression_statement "iVar19 = iVar19 + 0x24;" (assignment_expression "iVar19 = iVar19 + 0x24" identifier = (binary_expression "iVar19 + 0x24" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + 0x330000;" (assignment_expression "iVar20 = iVar20 + 0x330000" identifier = (binary_expression "iVar20 + 0x330000" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0x1320000)" ( (binary_expression "iVar20 != 0x1320000" identifier != number_literal) )) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0xe8;" (assignment_expression "iVar20 = 0xe8" identifier = number_literal) ;) (do_statement "do {\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      } while (iVar19 != 0x1090908);" do (compound_statement "{\n        sixel_palet[iVar20] = iVar19;\n        iVar20 = iVar20 + 1;\n        iVar19 = iVar19 + 0xb0b0b;\n      }" { (expression_statement "sixel_palet[iVar20] = iVar19;" (assignment_expression "sixel_palet[iVar20] = iVar19" (subscript_expression "sixel_palet[iVar20]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + 0xb0b0b;" (assignment_expression "iVar19 = iVar19 + 0xb0b0b" identifier = (binary_expression "iVar19 + 0xb0b0b" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0x1090908)" ( (binary_expression "iVar19 != 0x1090908" identifier != number_literal) )) ;) (expression_statement "n = 0x100;" (assignment_expression "n = 0x100" identifier = number_literal) ;) (expression_statement "memset(local_550,0,0x400000);" (call_expression "memset(local_550,0,0x400000)" identifier (argument_list "(local_550,0,0x400000)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "local_52c = 0x800;" (assignment_expression "local_52c = 0x800" identifier = number_literal) ;) (expression_statement "local_4c4 = 2;" (assignment_expression "local_4c4 = 2" identifier = number_literal) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (expression_statement "local_518 = 0;" (assignment_expression "local_518 = 0" identifier = number_literal) ;) (expression_statement "local_4bc = 0;" (assignment_expression "local_4bc = 0" identifier = number_literal) ;) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" identifier = number_literal) ;) (expression_statement "local_4c8 = 0;" (assignment_expression "local_4c8 = 0" identifier = number_literal) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0x800;" (assignment_expression "uVar23 = 0x800" identifier = number_literal) ;) (labeled_statement "LAB_003c9c9d:\n      while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }" statement_identifier : (while_statement "while( true ) {\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar3 = *p;\n        if (bVar3 == 0) goto LAB_003ca670;\n        if (bVar3 != 0x1b) break;\n        if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }\n      }" { (expression_statement "bVar3 = *p;" (assignment_expression "bVar3 = *p" identifier = (pointer_expression "*p" * identifier)) ;) (if_statement "if (bVar3 == 0) goto LAB_003ca670;" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (if_statement "if (bVar3 != 0x1b) break;" if (parenthesized_expression "(bVar3 != 0x1b)" ( (binary_expression "bVar3 != 0x1b" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (p[1] == 0x50) {\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }\n        else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }" if (parenthesized_expression "(p[1] == 0x50)" ( (binary_expression "p[1] == 0x50" (subscript_expression "p[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          p = p + 1;\nLAB_003c9c82:\n          p = get_params(p + 1,param,&n);\n          if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }\n        }" { (expression_statement "p = p + 1;" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) (labeled_statement "LAB_003c9c82:\n          p = get_params(p + 1,param,&n);" statement_identifier : (expression_statement "p = get_params(p + 1,param,&n);" (assignment_expression "p = get_params(p + 1,param,&n)" identifier = (call_expression "get_params(p + 1,param,&n)" identifier (argument_list "(p + 1,param,&n)" ( (binary_expression "p + 1" identifier + number_literal) , identifier , (pointer_expression "&n" & identifier) )))) ;)) (if_statement "if (((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)) {\n            param[2] = 10;\n          }" if (parenthesized_expression "(((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0))" ( (binary_expression "((*p == 0x71) && (p = p + 1, 2 < n)) && (param[2] == 0)" (parenthesized_expression "((*p == 0x71) && (p = p + 1, 2 < n))" ( (binary_expression "(*p == 0x71) && (p = p + 1, 2 < n)" (parenthesized_expression "(*p == 0x71)" ( (binary_expression "*p == 0x71" (pointer_expression "*p" * identifier) == number_literal) )) && (parenthesized_expression "(p = p + 1, 2 < n)" ( (comma_expression "p = p + 1, 2 < n" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) , (binary_expression "2 < n" number_literal < identifier)) ))) )) && (parenthesized_expression "(param[2] == 0)" ( (binary_expression "param[2] == 0" (subscript_expression "param[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n            param[2] = 10;\n          }" { (expression_statement "param[2] = 10;" (assignment_expression "param[2] = 10" (subscript_expression "param[2]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }" else (compound_statement "{\n          if (p[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }\n        }" { (if_statement "if (p[1] == 0x5c) goto LAB_003ca670;" if (parenthesized_expression "(p[1] == 0x5c)" ( (binary_expression "p[1] == 0x5c" (subscript_expression "p[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (labeled_statement "LAB_003c9c26:\n          if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }" statement_identifier : (if_statement "if ((byte)(bVar3 - 0x3f) < 0x41) {\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }\n          else {\n            p = p + 1;\n          }" if (parenthesized_expression "((byte)(bVar3 - 0x3f) < 0x41)" ( (binary_expression "(byte)(bVar3 - 0x3f) < 0x41" (call_expression "(byte)(bVar3 - 0x3f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar3 - 0x3f)" ( (binary_expression "bVar3 - 0x3f" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar20 = iVar19 + local_520;\n            uVar8 = uVar23;\n            if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar1 = p + 1;\n            uVar25 = *p - 0x3f;\n            p = pbVar1;\n            uVar23 = uVar8;\n            if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n          }" { (expression_statement "iVar20 = iVar19 + local_520;" (assignment_expression "iVar20 = iVar19 + local_520" identifier = (binary_expression "iVar19 + local_520" identifier + identifier)) ;) (expression_statement "uVar8 = uVar23;" (assignment_expression "uVar8 = uVar23" identifier = identifier) ;) (if_statement "if (((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)) {\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }" if (parenthesized_expression "(((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6))" ( (binary_expression "((int)local_52c < iVar20) || ((int)uVar23 < local_4c8 + 6)" (parenthesized_expression "((int)local_52c < iVar20)" ( (binary_expression "(int)local_52c < iVar20" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) || (parenthesized_expression "((int)uVar23 < local_4c8 + 6)" ( (binary_expression "(int)uVar23 < local_4c8 + 6" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "local_4c8 + 6" identifier + number_literal)) ))) )) (compound_statement "{\n              uVar25 = local_52c;\n              do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);\n              sVar22 = (size_t)(int)uVar8;\n              sVar24 = (size_t)(int)uVar25;\n              MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n              if (MVar6 == MagickFalse) goto LAB_003ca670;\n              puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n              if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }\n              memset(puVar10,0,sVar22 * sVar24);\n              if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = puVar10;\n              local_52c = uVar25;\n            }" { (expression_statement "uVar25 = local_52c;" (assignment_expression "uVar25 = local_52c" identifier = identifier) ;) (do_statement "do {\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              } while ((int)uVar8 < local_4c8 + 6);" do (compound_statement "{\n                do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);\n              }" { (do_statement "do {\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                } while ((int)uVar25 < iVar20);" do (compound_statement "{\n                  uVar8 = uVar8 * 2;\n                  uVar25 = uVar25 * 2;\n                }" { (expression_statement "uVar8 = uVar8 * 2;" (assignment_expression "uVar8 = uVar8 * 2" identifier = (binary_expression "uVar8 * 2" identifier * number_literal)) ;) (expression_statement "uVar25 = uVar25 * 2;" (assignment_expression "uVar25 = uVar25 * 2" identifier = (binary_expression "uVar25 * 2" identifier * number_literal)) ;) }) while (parenthesized_expression "((int)uVar25 < iVar20)" ( (binary_expression "(int)uVar25 < iVar20" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) }) while (parenthesized_expression "((int)uVar8 < local_4c8 + 6)" ( (binary_expression "(int)uVar8 < local_4c8 + 6" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "local_4c8 + 6" identifier + number_literal)) )) ;) (expression_statement "sVar22 = (size_t)(int)uVar8;" (assignment_expression "sVar22 = (size_t)(int)uVar8" identifier = (cast_expression "(size_t)(int)uVar8" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sVar24 = (size_t)(int)uVar25;" (assignment_expression "sVar24 = (size_t)(int)uVar25" identifier = (cast_expression "(size_t)(int)uVar25" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "MVar6 = SetImageExtent(image,sVar24,sVar22,exception);" (assignment_expression "MVar6 = SetImageExtent(image,sVar24,sVar22,exception)" identifier = (call_expression "SetImageExtent(image,sVar24,sVar22,exception)" identifier (argument_list "(image,sVar24,sVar22,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) goto LAB_003ca670;" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (expression_statement "puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);" (assignment_expression "puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22)" identifier = (cast_expression "(uchar *)AcquireQuantumMemory(sVar24,sVar22)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar24,sVar22)" identifier (argument_list "(sVar24,sVar22)" ( identifier , identifier ))))) ;) (if_statement "if (puVar10 == (uchar *)0x0) {\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }" if (parenthesized_expression "(puVar10 == (uchar *)0x0)" ( (binary_expression "puVar10 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                RelinquishMagickMemory(local_550);\n                MVar6 = MagickFalse;\n                goto LAB_003c9a8e;\n              }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "memset(puVar10,0,sVar22 * sVar24);" (call_expression "memset(puVar10,0,sVar22 * sVar24)" identifier (argument_list "(puVar10,0,sVar22 * sVar24)" ( identifier , number_literal , (binary_expression "sVar22 * sVar24" identifier * identifier) ))) ;) (if_statement "if (0 < (int)uVar23) {\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }" if (parenthesized_expression "(0 < (int)uVar23)" ( (binary_expression "0 < (int)uVar23" number_literal < (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar18 = 0;\n                iVar15 = 0;\n                uVar21 = 0;\n                do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                } while (uVar23 != uVar21);" do (compound_statement "{\n                  memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);\n                  uVar21 = uVar21 + 1;\n                  iVar15 = iVar15 + local_52c;\n                  iVar18 = iVar18 + uVar25;\n                }" { (expression_statement "memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c);" (call_expression "memcpy(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c)" identifier (argument_list "(puVar10 + iVar18,local_550 + iVar15,(long)(int)local_52c)" ( (binary_expression "puVar10 + iVar18" identifier + identifier) , (binary_expression "local_550 + iVar15" identifier + identifier) , (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar15 + local_52c;" (assignment_expression "iVar15 = iVar15 + local_52c" identifier = (binary_expression "iVar15 + local_52c" identifier + identifier)) ;) (expression_statement "iVar18 = iVar18 + uVar25;" (assignment_expression "iVar18 = iVar18 + uVar25" identifier = (binary_expression "iVar18 + uVar25" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar23 != uVar21)" ( (binary_expression "uVar23 != uVar21" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = puVar10;" (assignment_expression "local_550 = puVar10" identifier = identifier) ;) (expression_statement "local_52c = uVar25;" (assignment_expression "local_52c = uVar25" identifier = identifier) ;) })) (if_statement "if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }" if (parenthesized_expression "(local_4c4 < local_51c)" ( (binary_expression "local_4c4 < local_51c" identifier < identifier) )) (compound_statement "{\n              local_4c4 = local_51c;\n            }" { (expression_statement "local_4c4 = local_51c;" (assignment_expression "local_4c4 = local_51c" identifier = identifier) ;) })) (expression_statement "pbVar1 = p + 1;" (assignment_expression "pbVar1 = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) (expression_statement "uVar25 = *p - 0x3f;" (assignment_expression "uVar25 = *p - 0x3f" identifier = (binary_expression "*p - 0x3f" (pointer_expression "*p" * identifier) - number_literal)) ;) (expression_statement "p = pbVar1;" (assignment_expression "p = pbVar1" identifier = identifier) ;) (expression_statement "uVar23 = uVar8;" (assignment_expression "uVar23 = uVar8" identifier = identifier) ;) (if_statement "if (uVar25 == 0) {\n              local_520 = 1;\n              iVar19 = iVar20;\n            }\n            else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }" if (parenthesized_expression "(uVar25 == 0)" ( (binary_expression "uVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              local_520 = 1;\n              iVar19 = iVar20;\n            }" { (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar19 = iVar20;" (assignment_expression "iVar19 = iVar20" identifier = identifier) ;) }) (else_clause "else if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }" else (if_statement "if (local_520 < 2) {\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }\n            else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }" if (parenthesized_expression "(local_520 < 2)" ( (binary_expression "local_520 < 2" identifier < number_literal) )) (compound_statement "{\n              uVar17 = (long)(int)uVar8 * (long)(int)local_52c;\n              lVar9 = 0;\n              uVar8 = 1;\n              do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);\n              local_520 = 1;\n              iVar19 = iVar19 + 1;\n            }" { (expression_statement "uVar17 = (long)(int)uVar8 * (long)(int)local_52c;" (assignment_expression "uVar17 = (long)(int)uVar8 * (long)(int)local_52c" identifier = (binary_expression "(long)(int)uVar8 * (long)(int)local_52c" (cast_expression "(long)(int)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) * (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (do_statement "do {\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              } while (lVar9 != 6);" do (compound_statement "{\n                if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }\n                uVar8 = uVar8 * 2;\n                lVar9 = lVar9 + 1;\n              }" { (if_statement "if ((uVar25 & uVar8) != 0) {\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }" if (parenthesized_expression "((uVar25 & uVar8) != 0)" ( (binary_expression "(uVar25 & uVar8) != 0" (parenthesized_expression "(uVar25 & uVar8)" ( (binary_expression "uVar25 & uVar8" identifier & identifier) )) != number_literal) )) (compound_statement "{\n                  iVar20 = local_4c8 + (int)lVar9;\n                  uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;\n                  if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }\n                  local_550[uVar11] = (uchar)local_51c;\n                  if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }\n                  if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }\n                }" { (expression_statement "iVar20 = local_4c8 + (int)lVar9;" (assignment_expression "iVar20 = local_4c8 + (int)lVar9" identifier = (binary_expression "local_4c8 + (int)lVar9" identifier + (cast_expression "(int)lVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19;" (assignment_expression "uVar11 = (long)iVar20 * (long)(int)local_52c + (long)iVar19" identifier = (binary_expression "(long)iVar20 * (long)(int)local_52c + (long)iVar19" (binary_expression "(long)iVar20 * (long)(int)local_52c" (cast_expression "(long)iVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) + (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar17 < uVar11 || uVar17 - uVar11 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }" if (parenthesized_expression "(uVar17 < uVar11 || uVar17 - uVar11 == 0)" ( (binary_expression "uVar17 < uVar11 || uVar17 - uVar11 == 0" (binary_expression "uVar17 < uVar11" identifier < identifier) || (binary_expression "uVar17 - uVar11 == 0" (binary_expression "uVar17 - uVar11" identifier - identifier) == number_literal)) )) (compound_statement "{\n                    RelinquishMagickMemory(local_550);\n                    MVar6 = MagickFalse;\n                    goto LAB_003c9a8e;\n                  }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "local_550[uVar11] = (uchar)local_51c;" (assignment_expression "local_550[uVar11] = (uchar)local_51c" (subscript_expression "local_550[uVar11]" identifier [ identifier ]) = (cast_expression "(uchar)local_51c" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (if_statement "if (local_4a0 < iVar19) {\n                    local_4a0 = iVar19;\n                  }" if (parenthesized_expression "(local_4a0 < iVar19)" ( (binary_expression "local_4a0 < iVar19" identifier < identifier) )) (compound_statement "{\n                    local_4a0 = iVar19;\n                  }" { (expression_statement "local_4a0 = iVar19;" (assignment_expression "local_4a0 = iVar19" identifier = identifier) ;) })) (if_statement "if (local_4bc < iVar20) {\n                    local_4bc = iVar20;\n                  }" if (parenthesized_expression "(local_4bc < iVar20)" ( (binary_expression "local_4bc < iVar20" identifier < identifier) )) (compound_statement "{\n                    local_4bc = iVar20;\n                  }" { (expression_statement "local_4bc = iVar20;" (assignment_expression "local_4bc = iVar20" identifier = identifier) ;) })) })) (expression_statement "uVar8 = uVar8 * 2;" (assignment_expression "uVar8 = uVar8 * 2" identifier = (binary_expression "uVar8 * 2" identifier * number_literal)) ;) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 6)" ( (binary_expression "lVar9 != 6" identifier != number_literal) )) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }" else (compound_statement "{\n              lVar9 = (long)(int)local_52c;\n              uVar21 = 1;\n              iVar15 = 0;\n              __n = (size_t)local_520;\n              do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);\n              local_520 = 1;\n              iVar19 = iVar20;\n            }" { (expression_statement "lVar9 = (long)(int)local_52c;" (assignment_expression "lVar9 = (long)(int)local_52c" identifier = (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "__n = (size_t)local_520;" (assignment_expression "__n = (size_t)local_520" identifier = (cast_expression "(size_t)local_520" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (do_statement "do {\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              } while (iVar15 < 6);" do (compound_statement "{\n                if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }\n                uVar21 = uVar21 << 1;\n                iVar15 = iVar15 + 1;\n              }" { (if_statement "if ((uVar21 & uVar25) != 0) {\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }" if (parenthesized_expression "((uVar21 & uVar25) != 0)" ( (binary_expression "(uVar21 & uVar25) != 0" (parenthesized_expression "(uVar21 & uVar25)" ( (binary_expression "uVar21 & uVar25" identifier & identifier) )) != number_literal) )) (compound_statement "{\n                  n = 1;\n                  if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }\n                  iVar7 = n;\n                  iVar18 = local_4c8 + iVar15;\n                  iVar14 = iVar18 + n;\n                  if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }\n                  iVar18 = iVar14 + -1;\n                  if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }\n                  iVar15 = iVar15 + iVar7 + -1;\n                  uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);\n                  local_4bc = iVar18;\n                }" { (expression_statement "n = 1;" (assignment_expression "n = 1" identifier = number_literal) ;) (if_statement "if (iVar15 + 1 < 6) {\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }" if (parenthesized_expression "(iVar15 + 1 < 6)" ( (binary_expression "iVar15 + 1 < 6" (binary_expression "iVar15 + 1" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    uVar5 = uVar21;\n                    for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }\n                  }" { (expression_statement "uVar5 = uVar21;" (assignment_expression "uVar5 = uVar21" identifier = identifier) ;) (for_statement "for (iVar18 = 2;\n                        (uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)); iVar18 = iVar18 + 1) {\n                    }" for ( (assignment_expression "iVar18 = 2" identifier = number_literal) ; (parenthesized_expression "(uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18))" ( (comma_expression "uVar5 = uVar5 * 2, (uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)" (assignment_expression "uVar5 = uVar5 * 2" identifier = (binary_expression "uVar5 * 2" identifier * number_literal)) , (binary_expression "(uVar25 & uVar5) != 0 &&\n                        (n = iVar18, 6 - iVar15 != iVar18)" (binary_expression "(uVar25 & uVar5) != 0" (parenthesized_expression "(uVar25 & uVar5)" ( (binary_expression "uVar25 & uVar5" identifier & identifier) )) != number_literal) && (parenthesized_expression "(n = iVar18, 6 - iVar15 != iVar18)" ( (comma_expression "n = iVar18, 6 - iVar15 != iVar18" (assignment_expression "n = iVar18" identifier = identifier) , (binary_expression "6 - iVar15 != iVar18" (binary_expression "6 - iVar15" number_literal - identifier) != identifier)) )))) )) ; (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ) (compound_statement "{\n                    }" { })) })) (expression_statement "iVar7 = n;" (assignment_expression "iVar7 = n" identifier = identifier) ;) (expression_statement "iVar18 = local_4c8 + iVar15;" (assignment_expression "iVar18 = local_4c8 + iVar15" identifier = (binary_expression "local_4c8 + iVar15" identifier + identifier)) ;) (expression_statement "iVar14 = iVar18 + n;" (assignment_expression "iVar14 = iVar18 + n" identifier = (binary_expression "iVar18 + n" identifier + identifier)) ;) (if_statement "if (iVar18 < iVar14) {\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }" if (parenthesized_expression "(iVar18 < iVar14)" ( (binary_expression "iVar18 < iVar14" identifier < identifier) )) (compound_statement "{\n                    lVar12 = iVar18 * lVar9 + (long)iVar19;\n                    if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;\n                    while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }\n                  }" { (expression_statement "lVar12 = iVar18 * lVar9 + (long)iVar19;" (assignment_expression "lVar12 = iVar18 * lVar9 + (long)iVar19" identifier = (binary_expression "iVar18 * lVar9 + (long)iVar19" (binary_expression "iVar18 * lVar9" identifier * identifier) + (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((ulong)((int)uVar8 * lVar9) <= lVar12 + __n) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }" if (parenthesized_expression "((ulong)((int)uVar8 * lVar9) <= lVar12 + __n)" ( (binary_expression "(ulong)((int)uVar8 * lVar9) <= lVar12 + __n" (call_expression "(ulong)((int)uVar8 * lVar9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar8 * lVar9)" ( (binary_expression "(int)uVar8 * lVar9" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= (binary_expression "lVar12 + __n" identifier + identifier)) )) (compound_statement "{\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      MVar6 = MagickFalse;\n                      goto LAB_003c9a8e;\n                    }" { (labeled_statement "LAB_003ca553:\n                      RelinquishMagickMemory(local_550);" statement_identifier : (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;)) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n;" (assignment_expression "uVar17 = (iVar18 + 1) * lVar9 + (long)iVar19 + __n" identifier = (binary_expression "(iVar18 + 1) * lVar9 + (long)iVar19 + __n" (binary_expression "(iVar18 + 1) * lVar9 + (long)iVar19" (binary_expression "(iVar18 + 1) * lVar9" (parenthesized_expression "(iVar18 + 1)" ( (binary_expression "iVar18 + 1" identifier + number_literal) )) * identifier) + (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + identifier)) ;) (while_statement "while( true ) {\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      memset(local_550 + lVar12,local_51c,__n);\n                      iVar18 = iVar18 + 1;\n                      if (iVar18 == iVar14) break;\n                      lVar12 = uVar17 - __n;\n                      bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;\n                      uVar17 = uVar17 + lVar9;\n                      if (bVar26) goto LAB_003ca553;\n                    }" { (expression_statement "memset(local_550 + lVar12,local_51c,__n);" (call_expression "memset(local_550 + lVar12,local_51c,__n)" identifier (argument_list "(local_550 + lVar12,local_51c,__n)" ( (binary_expression "local_550 + lVar12" identifier + identifier) , identifier , identifier ))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar18 == iVar14) break;" if (parenthesized_expression "(iVar18 == iVar14)" ( (binary_expression "iVar18 == iVar14" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = uVar17 - __n;" (assignment_expression "lVar12 = uVar17 - __n" identifier = (binary_expression "uVar17 - __n" identifier - identifier)) ;) (expression_statement "bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17;" (assignment_expression "bVar26 = (ulong)((int)uVar8 * lVar9) <= uVar17" identifier = (binary_expression "(ulong)((int)uVar8 * lVar9) <= uVar17" (call_expression "(ulong)((int)uVar8 * lVar9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar8 * lVar9)" ( (binary_expression "(int)uVar8 * lVar9" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= identifier)) ;) (expression_statement "uVar17 = uVar17 + lVar9;" (assignment_expression "uVar17 = uVar17 + lVar9" identifier = (binary_expression "uVar17 + lVar9" identifier + identifier)) ;) (if_statement "if (bVar26) goto LAB_003ca553;" if (parenthesized_expression "(bVar26)" ( identifier )) (goto_statement "goto LAB_003ca553;" goto statement_identifier ;)) })) })) (if_statement "if (local_4a0 < iVar20 + -1) {\n                    local_4a0 = iVar20 + -1;\n                  }" if (parenthesized_expression "(local_4a0 < iVar20 + -1)" ( (binary_expression "local_4a0 < iVar20 + -1" identifier < (binary_expression "iVar20 + -1" identifier + number_literal)) )) (compound_statement "{\n                    local_4a0 = iVar20 + -1;\n                  }" { (expression_statement "local_4a0 = iVar20 + -1;" (assignment_expression "local_4a0 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar18 = iVar14 + -1;" (assignment_expression "iVar18 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (if_statement "if (iVar14 + -1 <= local_4bc) {\n                    iVar18 = local_4bc;\n                  }" if (parenthesized_expression "(iVar14 + -1 <= local_4bc)" ( (binary_expression "iVar14 + -1 <= local_4bc" (binary_expression "iVar14 + -1" identifier + number_literal) <= identifier) )) (compound_statement "{\n                    iVar18 = local_4bc;\n                  }" { (expression_statement "iVar18 = local_4bc;" (assignment_expression "iVar18 = local_4bc" identifier = identifier) ;) })) (expression_statement "iVar15 = iVar15 + iVar7 + -1;" (assignment_expression "iVar15 = iVar15 + iVar7 + -1" identifier = (binary_expression "iVar15 + iVar7 + -1" (binary_expression "iVar15 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f);" (assignment_expression "uVar21 = uVar21 << ((byte)(iVar7 + -1) & 0x1f)" identifier = (binary_expression "uVar21 << ((byte)(iVar7 + -1) & 0x1f)" identifier << (parenthesized_expression "((byte)(iVar7 + -1) & 0x1f)" ( (binary_expression "(byte)(iVar7 + -1) & 0x1f" (call_expression "(byte)(iVar7 + -1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar7 + -1)" ( (binary_expression "iVar7 + -1" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "local_4bc = iVar18;" (assignment_expression "local_4bc = iVar18" identifier = identifier) ;) })) (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 < 6)" ( (binary_expression "iVar15 < 6" identifier < number_literal) )) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar19 = iVar20;" (assignment_expression "iVar19 = iVar20" identifier = identifier) ;) }))))) }) (else_clause "else {\n            p = p + 1;\n          }" else (compound_statement "{\n            p = p + 1;\n          }" { (expression_statement "p = p + 1;" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) })))) }))) }))) (if_statement "if (bVar3 == 0x90) goto LAB_003c9c82;" if (parenthesized_expression "(bVar3 == 0x90)" ( (binary_expression "bVar3 == 0x90" identifier == number_literal) )) (goto_statement "goto LAB_003c9c82;" goto statement_identifier ;)) (if_statement "if (bVar3 == 0x9c) goto LAB_003ca670;" if (parenthesized_expression "(bVar3 == 0x9c)" ( (binary_expression "bVar3 == 0x9c" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (if_statement "if (bVar3 == 0x22) {\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }" if (parenthesized_expression "(bVar3 == 0x22)" ( (binary_expression "bVar3 == 0x22" identifier == number_literal) )) (compound_statement "{\n        p = get_params(p + 1,param,&n);\n        uVar8 = local_518;\n        if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }\n        local_518 = uVar8;\n        uVar8 = local_514;\n        if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }\n        local_514 = uVar8;\n        if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }\n        goto LAB_003c9c9d;\n      }" { (expression_statement "p = get_params(p + 1,param,&n);" (assignment_expression "p = get_params(p + 1,param,&n)" identifier = (call_expression "get_params(p + 1,param,&n)" identifier (argument_list "(p + 1,param,&n)" ( (binary_expression "p + 1" identifier + number_literal) , identifier , (pointer_expression "&n" & identifier) )))) ;) (expression_statement "uVar8 = local_518;" (assignment_expression "uVar8 = local_518" identifier = identifier) ;) (if_statement "if ((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)) {\n          uVar8 = local_518;\n        }" if (parenthesized_expression "((2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1))" ( (binary_expression "(2 < n) && (uVar8 = param[2] & 0xffff, param[2] < 1)" (parenthesized_expression "(2 < n)" ( (binary_expression "2 < n" number_literal < identifier) )) && (parenthesized_expression "(uVar8 = param[2] & 0xffff, param[2] < 1)" ( (comma_expression "uVar8 = param[2] & 0xffff, param[2] < 1" (assignment_expression "uVar8 = param[2] & 0xffff" identifier = (binary_expression "param[2] & 0xffff" (subscript_expression "param[2]" identifier [ number_literal ]) & number_literal)) , (binary_expression "param[2] < 1" (subscript_expression "param[2]" identifier [ number_literal ]) < number_literal)) ))) )) (compound_statement "{\n          uVar8 = local_518;\n        }" { (expression_statement "uVar8 = local_518;" (assignment_expression "uVar8 = local_518" identifier = identifier) ;) })) (expression_statement "local_518 = uVar8;" (assignment_expression "local_518 = uVar8" identifier = identifier) ;) (expression_statement "uVar8 = local_514;" (assignment_expression "uVar8 = local_514" identifier = identifier) ;) (if_statement "if ((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)) {\n          uVar8 = local_514;\n        }" if (parenthesized_expression "((3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1))" ( (binary_expression "(3 < n) && (uVar8 = param[3] & 0xffff, param[3] < 1)" (parenthesized_expression "(3 < n)" ( (binary_expression "3 < n" number_literal < identifier) )) && (parenthesized_expression "(uVar8 = param[3] & 0xffff, param[3] < 1)" ( (comma_expression "uVar8 = param[3] & 0xffff, param[3] < 1" (assignment_expression "uVar8 = param[3] & 0xffff" identifier = (binary_expression "param[3] & 0xffff" (subscript_expression "param[3]" identifier [ number_literal ]) & number_literal)) , (binary_expression "param[3] < 1" (subscript_expression "param[3]" identifier [ number_literal ]) < number_literal)) ))) )) (compound_statement "{\n          uVar8 = local_514;\n        }" { (expression_statement "uVar8 = local_514;" (assignment_expression "uVar8 = local_514" identifier = identifier) ;) })) (expression_statement "local_514 = uVar8;" (assignment_expression "local_514 = uVar8" identifier = identifier) ;) (if_statement "if (((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)) {\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }" if (parenthesized_expression "(((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514))" ( (binary_expression "((int)local_52c < (int)local_518) || ((int)uVar23 < (int)local_514)" (parenthesized_expression "((int)local_52c < (int)local_518)" ( (binary_expression "(int)local_52c < (int)local_518" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)uVar23 < (int)local_514)" ( (binary_expression "(int)uVar23 < (int)local_514" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          uVar8 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }\n          uVar25 = uVar23;\n          if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }\n          sVar22 = (size_t)(int)uVar25;\n          sVar24 = (size_t)(int)uVar8;\n          MVar6 = SetImageExtent(image,sVar24,sVar22,exception);\n          if (MVar6 == MagickFalse) goto LAB_003ca670;\n          puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);\n          if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }\n          memset(puVar10,0,sVar22 * sVar24);\n          if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = puVar10;\n          local_52c = uVar8;\n          uVar23 = uVar25;\n        }" { (expression_statement "uVar8 = local_52c;" (assignment_expression "uVar8 = local_52c" identifier = identifier) ;) (if_statement "if ((int)local_52c <= (int)local_518) {\n            uVar8 = local_518;\n          }" if (parenthesized_expression "((int)local_52c <= (int)local_518)" ( (binary_expression "(int)local_52c <= (int)local_518" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar8 = local_518;\n          }" { (expression_statement "uVar8 = local_518;" (assignment_expression "uVar8 = local_518" identifier = identifier) ;) })) (expression_statement "uVar25 = uVar23;" (assignment_expression "uVar25 = uVar23" identifier = identifier) ;) (if_statement "if ((int)uVar23 <= (int)local_514) {\n            uVar25 = local_514;\n          }" if (parenthesized_expression "((int)uVar23 <= (int)local_514)" ( (binary_expression "(int)uVar23 <= (int)local_514" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar25 = local_514;\n          }" { (expression_statement "uVar25 = local_514;" (assignment_expression "uVar25 = local_514" identifier = identifier) ;) })) (expression_statement "sVar22 = (size_t)(int)uVar25;" (assignment_expression "sVar22 = (size_t)(int)uVar25" identifier = (cast_expression "(size_t)(int)uVar25" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sVar24 = (size_t)(int)uVar8;" (assignment_expression "sVar24 = (size_t)(int)uVar8" identifier = (cast_expression "(size_t)(int)uVar8" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "MVar6 = SetImageExtent(image,sVar24,sVar22,exception);" (assignment_expression "MVar6 = SetImageExtent(image,sVar24,sVar22,exception)" identifier = (call_expression "SetImageExtent(image,sVar24,sVar22,exception)" identifier (argument_list "(image,sVar24,sVar22,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) goto LAB_003ca670;" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (expression_statement "puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22);" (assignment_expression "puVar10 = (uchar *)AcquireQuantumMemory(sVar24,sVar22)" identifier = (cast_expression "(uchar *)AcquireQuantumMemory(sVar24,sVar22)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar24,sVar22)" identifier (argument_list "(sVar24,sVar22)" ( identifier , identifier ))))) ;) (if_statement "if (puVar10 == (uchar *)0x0) {\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }" if (parenthesized_expression "(puVar10 == (uchar *)0x0)" ( (binary_expression "puVar10 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            RelinquishMagickMemory(local_550);\n            MVar6 = MagickFalse;\n            goto LAB_003c9a8e;\n          }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "memset(puVar10,0,sVar22 * sVar24);" (call_expression "memset(puVar10,0,sVar22 * sVar24)" identifier (argument_list "(puVar10,0,sVar22 * sVar24)" ( identifier , number_literal , (binary_expression "sVar22 * sVar24" identifier * identifier) ))) ;) (if_statement "if (0 < (int)uVar23) {\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }" if (parenthesized_expression "(0 < (int)uVar23)" ( (binary_expression "0 < (int)uVar23" number_literal < (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar15 = 0;\n            iVar20 = 0;\n            uVar21 = 0;\n            do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            } while (uVar23 != uVar21);" do (compound_statement "{\n              memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);\n              uVar21 = uVar21 + 1;\n              iVar20 = iVar20 + local_52c;\n              iVar15 = iVar15 + uVar8;\n            }" { (expression_statement "memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c);" (call_expression "memcpy(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c)" identifier (argument_list "(puVar10 + iVar15,local_550 + iVar20,(long)(int)local_52c)" ( (binary_expression "puVar10 + iVar15" identifier + identifier) , (binary_expression "local_550 + iVar20" identifier + identifier) , (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + local_52c;" (assignment_expression "iVar20 = iVar20 + local_52c" identifier = (binary_expression "iVar20 + local_52c" identifier + identifier)) ;) (expression_statement "iVar15 = iVar15 + uVar8;" (assignment_expression "iVar15 = iVar15 + uVar8" identifier = (binary_expression "iVar15 + uVar8" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar23 != uVar21)" ( (binary_expression "uVar23 != uVar21" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = puVar10;" (assignment_expression "local_550 = puVar10" identifier = identifier) ;) (expression_statement "local_52c = uVar8;" (assignment_expression "local_52c = uVar8" identifier = identifier) ;) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" identifier = identifier) ;) })) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;) })) (if_statement "if (bVar3 != 0x21) {\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" if (parenthesized_expression "(bVar3 != 0x21)" ( (binary_expression "bVar3 != 0x21" identifier != number_literal) )) (compound_statement "{\n        if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" { (if_statement "if (bVar3 == 0x23) {\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }" if (parenthesized_expression "(bVar3 == 0x23)" ( (binary_expression "bVar3 == 0x23" identifier == number_literal) )) (compound_statement "{\n          p = get_params(p + 1,param,&n);\n          if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }\n          if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }\n        }" { (expression_statement "p = get_params(p + 1,param,&n);" (assignment_expression "p = get_params(p + 1,param,&n)" identifier = (call_expression "get_params(p + 1,param,&n)" identifier (argument_list "(p + 1,param,&n)" ( (binary_expression "p + 1" identifier + number_literal) , identifier , (pointer_expression "&n" & identifier) )))) ;) (if_statement "if (0 < n) {\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }" if (parenthesized_expression "(0 < n)" ( (binary_expression "0 < n" number_literal < identifier) )) (compound_statement "{\n            iVar20 = 0xff;\n            if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }\n            local_51c = 0;\n            if (-1 < iVar20) {\n              local_51c = iVar20;\n            }\n          }" { (expression_statement "iVar20 = 0xff;" (assignment_expression "iVar20 = 0xff" identifier = number_literal) ;) (if_statement "if (param[0] < 0x100) {\n              iVar20 = param[0];\n            }" if (parenthesized_expression "(param[0] < 0x100)" ( (binary_expression "param[0] < 0x100" (subscript_expression "param[0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n              iVar20 = param[0];\n            }" { (expression_statement "iVar20 = param[0];" (assignment_expression "iVar20 = param[0]" identifier = (subscript_expression "param[0]" identifier [ number_literal ])) ;) })) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (if_statement "if (-1 < iVar20) {\n              local_51c = iVar20;\n            }" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (compound_statement "{\n              local_51c = iVar20;\n            }" { (expression_statement "local_51c = iVar20;" (assignment_expression "local_51c = iVar20" identifier = identifier) ;) })) })) (if_statement "if (4 < n) {\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }" if (parenthesized_expression "(4 < n)" ( (binary_expression "4 < n" number_literal < identifier) )) (compound_statement "{\n            if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }\n          }" { (if_statement "if (param[1] == 1) {\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }\n            else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }" if (parenthesized_expression "(param[1] == 1)" ( (binary_expression "param[1] == 1" (subscript_expression "param[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }\n              sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;\n            }" { (if_statement "if (0x168 < param[2]) {\n                param[2] = 0x168;\n              }" if (parenthesized_expression "(0x168 < param[2])" ( (binary_expression "0x168 < param[2]" number_literal < (subscript_expression "param[2]" identifier [ number_literal ])) )) (compound_statement "{\n                param[2] = 0x168;\n              }" { (expression_statement "param[2] = 0x168;" (assignment_expression "param[2] = 0x168" (subscript_expression "param[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (100 < param[3]) {\n                param[3] = 100;\n              }" if (parenthesized_expression "(100 < param[3])" ( (binary_expression "100 < param[3]" number_literal < (subscript_expression "param[3]" identifier [ number_literal ])) )) (compound_statement "{\n                param[3] = 100;\n              }" { (expression_statement "param[3] = 100;" (assignment_expression "param[3] = 100" (subscript_expression "param[3]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (param[4] < 0x65) {\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }\n              else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }" if (parenthesized_expression "(param[4] < 0x65)" ( (binary_expression "param[4] < 0x65" (subscript_expression "param[4]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n                if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }\n                iVar15 = (param[3] * 0xff) / 100;\n                iVar18 = iVar15;\n                iVar20 = iVar15;\n              }" { (if_statement "if (param[4] != 0) {\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }" if (parenthesized_expression "(param[4] != 0)" ( (binary_expression "param[4] != 0" (subscript_expression "param[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                  iVar15 = param[4];\n                  goto LAB_003ca0ae;\n                }" { (expression_statement "iVar20 = (int)(((long)param[2] * 100) / 0x168);" (assignment_expression "iVar20 = (int)(((long)param[2] * 100) / 0x168)" identifier = (cast_expression "(int)(((long)param[2] * 100) / 0x168)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((long)param[2] * 100) / 0x168)" ( (binary_expression "((long)param[2] * 100) / 0x168" (parenthesized_expression "((long)param[2] * 100)" ( (binary_expression "(long)param[2] * 100" (cast_expression "(long)param[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[2]" identifier [ number_literal ])) * number_literal) )) / number_literal) )))) ;) (expression_statement "iVar15 = param[4];" (assignment_expression "iVar15 = param[4]" identifier = (subscript_expression "param[4]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_003ca0ae;" goto statement_identifier ;) })) (expression_statement "iVar15 = (param[3] * 0xff) / 100;" (assignment_expression "iVar15 = (param[3] * 0xff) / 100" identifier = (binary_expression "(param[3] * 0xff) / 100" (parenthesized_expression "(param[3] * 0xff)" ( (binary_expression "param[3] * 0xff" (subscript_expression "param[3]" identifier [ number_literal ]) * number_literal) )) / number_literal)) ;) (expression_statement "iVar18 = iVar15;" (assignment_expression "iVar18 = iVar15" identifier = identifier) ;) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) }) (else_clause "else {\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }" else (compound_statement "{\n                param[4] = 100;\n                iVar20 = (int)(((long)param[2] * 100) / 0x168);\n                iVar15 = 100;\nLAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }\n                iVar14 = param[3] * 2 - iVar18;\n                iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);\n                iVar15 = (iVar15 * 0xff + 0x32) / 100;\n                iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);\n                iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);\n                iVar18 = (iVar20 * 0xff + 0x32) / 100;\n                iVar20 = (iVar7 * 0xff + 0x32) / 100;\n              }" { (expression_statement "param[4] = 100;" (assignment_expression "param[4] = 100" (subscript_expression "param[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar20 = (int)(((long)param[2] * 100) / 0x168);" (assignment_expression "iVar20 = (int)(((long)param[2] * 100) / 0x168)" identifier = (cast_expression "(int)(((long)param[2] * 100) / 0x168)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((long)param[2] * 100) / 0x168)" ( (binary_expression "((long)param[2] * 100) / 0x168" (parenthesized_expression "((long)param[2] * 100)" ( (binary_expression "(long)param[2] * 100" (cast_expression "(long)param[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[2]" identifier [ number_literal ])) * number_literal) )) / number_literal) )))) ;) (expression_statement "iVar15 = 100;" (assignment_expression "iVar15 = 100" identifier = number_literal) ;) (labeled_statement "LAB_003ca0ae:\n                if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }" statement_identifier : (if_statement "if (param[3] < 0x33) {\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }\n                else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }" if (parenthesized_expression "(param[3] < 0x33)" ( (binary_expression "param[3] < 0x33" (subscript_expression "param[3]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n                  lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;\n                  iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);\n                }" { (expression_statement "lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32;" (assignment_expression "lVar9 = (long)(iVar15 + 100) * (long)param[3] + 0x32" identifier = (binary_expression "(long)(iVar15 + 100) * (long)param[3] + 0x32" (binary_expression "(long)(iVar15 + 100) * (long)param[3]" (cast_expression "(long)(iVar15 + 100)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar15 + 100)" ( (binary_expression "iVar15 + 100" identifier + number_literal) ))) * (cast_expression "(long)param[3]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[3]" identifier [ number_literal ]))) + number_literal)) ;) (expression_statement "iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f);" (assignment_expression "iVar18 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f)" identifier = (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6) - (int)(lVar9 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar9 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar9 >> 0x3f)" ( (binary_expression "lVar9 >> 0x3f" identifier >> number_literal) ))))) ;) }) (else_clause "else {\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }" else (compound_statement "{\n                  lVar9 = (long)iVar15 * (long)param[3] + 0x32;\n                  iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));\n                }" { (expression_statement "lVar9 = (long)iVar15 * (long)param[3] + 0x32;" (assignment_expression "lVar9 = (long)iVar15 * (long)param[3] + 0x32" identifier = (binary_expression "(long)iVar15 * (long)param[3] + 0x32" (binary_expression "(long)iVar15 * (long)param[3]" (cast_expression "(long)iVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * (cast_expression "(long)param[3]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[3]" identifier [ number_literal ]))) + number_literal)) ;) (expression_statement "iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f));" (assignment_expression "iVar18 = (param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f))" identifier = (binary_expression "(param[3] + iVar15) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f))" (parenthesized_expression "(param[3] + iVar15)" ( (binary_expression "param[3] + iVar15" (subscript_expression "param[3]" identifier [ number_literal ]) + identifier) )) - (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6) - (int)(lVar9 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >>\n                                 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar9 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar9 >> 0x3f)" ( (binary_expression "lVar9 >> 0x3f" identifier >> number_literal) )))) )))) ;) })))) (expression_statement "iVar14 = param[3] * 2 - iVar18;" (assignment_expression "iVar14 = param[3] * 2 - iVar18" identifier = (binary_expression "param[3] * 2 - iVar18" (binary_expression "param[3] * 2" (subscript_expression "param[3]" identifier [ number_literal ]) * number_literal) - identifier)) ;) (expression_statement "iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21);" (assignment_expression "iVar15 = hue_to_rgb(iVar14,iVar18,iVar20 + 0x21)" identifier = (call_expression "hue_to_rgb(iVar14,iVar18,iVar20 + 0x21)" identifier (argument_list "(iVar14,iVar18,iVar20 + 0x21)" ( identifier , identifier , (binary_expression "iVar20 + 0x21" identifier + number_literal) )))) ;) (expression_statement "iVar15 = (iVar15 * 0xff + 0x32) / 100;" (assignment_expression "iVar15 = (iVar15 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar15 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar15 * 0xff + 0x32)" ( (binary_expression "iVar15 * 0xff + 0x32" (binary_expression "iVar15 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) (expression_statement "iVar7 = hue_to_rgb(iVar14,iVar18,iVar20);" (assignment_expression "iVar7 = hue_to_rgb(iVar14,iVar18,iVar20)" identifier = (call_expression "hue_to_rgb(iVar14,iVar18,iVar20)" identifier (argument_list "(iVar14,iVar18,iVar20)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21);" (assignment_expression "iVar20 = hue_to_rgb(iVar14,iVar18,iVar20 + -0x21)" identifier = (call_expression "hue_to_rgb(iVar14,iVar18,iVar20 + -0x21)" identifier (argument_list "(iVar14,iVar18,iVar20 + -0x21)" ( identifier , identifier , (binary_expression "iVar20 + -0x21" identifier + number_literal) )))) ;) (expression_statement "iVar18 = (iVar20 * 0xff + 0x32) / 100;" (assignment_expression "iVar18 = (iVar20 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar20 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar20 * 0xff + 0x32)" ( (binary_expression "iVar20 * 0xff + 0x32" (binary_expression "iVar20 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) (expression_statement "iVar20 = (iVar7 * 0xff + 0x32) / 100;" (assignment_expression "iVar20 = (iVar7 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar7 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar7 * 0xff + 0x32)" ( (binary_expression "iVar7 * 0xff + 0x32" (binary_expression "iVar7 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) }))) (expression_statement "sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18;" (assignment_expression "sixel_palet[local_51c] = iVar15 * 0x10000 + iVar20 * 0x100 + iVar18" (subscript_expression "sixel_palet[local_51c]" identifier [ identifier ]) = (binary_expression "iVar15 * 0x10000 + iVar20 * 0x100 + iVar18" (binary_expression "iVar15 * 0x10000 + iVar20 * 0x100" (binary_expression "iVar15 * 0x10000" identifier * number_literal) + (binary_expression "iVar20 * 0x100" identifier * number_literal)) + identifier)) ;) }) (else_clause "else if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }" else (if_statement "if (param[1] == 2) {\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }" if (parenthesized_expression "(param[1] == 2)" ( (binary_expression "param[1] == 2" (subscript_expression "param[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              if (100 < param[2]) {\n                param[2] = 100;\n              }\n              if (100 < param[3]) {\n                param[3] = 100;\n              }\n              if (100 < param[4]) {\n                param[4] = 100;\n              }\n              lVar9 = (long)param[2] * 0xff + 0x32;\n              lVar12 = (long)param[4] * 0xff + 0x32;\n              lVar16 = (long)param[3] * 0xff + 0x32;\n              sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;\n            }" { (if_statement "if (100 < param[2]) {\n                param[2] = 100;\n              }" if (parenthesized_expression "(100 < param[2])" ( (binary_expression "100 < param[2]" number_literal < (subscript_expression "param[2]" identifier [ number_literal ])) )) (compound_statement "{\n                param[2] = 100;\n              }" { (expression_statement "param[2] = 100;" (assignment_expression "param[2] = 100" (subscript_expression "param[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (100 < param[3]) {\n                param[3] = 100;\n              }" if (parenthesized_expression "(100 < param[3])" ( (binary_expression "100 < param[3]" number_literal < (subscript_expression "param[3]" identifier [ number_literal ])) )) (compound_statement "{\n                param[3] = 100;\n              }" { (expression_statement "param[3] = 100;" (assignment_expression "param[3] = 100" (subscript_expression "param[3]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (100 < param[4]) {\n                param[4] = 100;\n              }" if (parenthesized_expression "(100 < param[4])" ( (binary_expression "100 < param[4]" number_literal < (subscript_expression "param[4]" identifier [ number_literal ])) )) (compound_statement "{\n                param[4] = 100;\n              }" { (expression_statement "param[4] = 100;" (assignment_expression "param[4] = 100" (subscript_expression "param[4]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "lVar9 = (long)param[2] * 0xff + 0x32;" (assignment_expression "lVar9 = (long)param[2] * 0xff + 0x32" identifier = (binary_expression "(long)param[2] * 0xff + 0x32" (binary_expression "(long)param[2] * 0xff" (cast_expression "(long)param[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[2]" identifier [ number_literal ])) * number_literal) + number_literal)) ;) (expression_statement "lVar12 = (long)param[4] * 0xff + 0x32;" (assignment_expression "lVar12 = (long)param[4] * 0xff + 0x32" identifier = (binary_expression "(long)param[4] * 0xff + 0x32" (binary_expression "(long)param[4] * 0xff" (cast_expression "(long)param[4]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[4]" identifier [ number_literal ])) * number_literal) + number_literal)) ;) (expression_statement "lVar16 = (long)param[3] * 0xff + 0x32;" (assignment_expression "lVar16 = (long)param[3] * 0xff + 0x32" identifier = (binary_expression "(long)param[3] * 0xff + 0x32" (binary_expression "(long)param[3] * 0xff" (cast_expression "(long)param[3]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[3]" identifier [ number_literal ])) * number_literal) + number_literal)) ;) (expression_statement "sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100;" (assignment_expression "sixel_palet[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100" (subscript_expression "sixel_palet[local_51c]" identifier [ identifier ]) = (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f))" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)) * 0x10000" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6) -\n                   (int)(lVar9 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8) + lVar9" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar9)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar9 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar9 >> 0x3f)" ( (binary_expression "lVar9 >> 0x3f" identifier >> number_literal) )))) )) * number_literal) + (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6) -\n                   (int)(lVar12 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8) + lVar12" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar12)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar12)" identifier (argument_list "(lVar12)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar12 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar12 >> 0x3f)" ( (binary_expression "lVar12 >> 0x3f" identifier >> number_literal) )))) ))) + (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)) * 0x100" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6) -\n                   (int)(lVar16 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8) + lVar16" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar16)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar16)" identifier (argument_list "(lVar16)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar16 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar16 >> 0x3f)" ( (binary_expression "lVar16 >> 0x3f" identifier >> number_literal) )))) )) * number_literal))) ;) })))) })) }) (else_clause "else if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }" else (if_statement "if (bVar3 == 0x24) {\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }\n        else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }" if (parenthesized_expression "(bVar3 == 0x24)" ( (binary_expression "bVar3 == 0x24" identifier == number_literal) )) (compound_statement "{\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }" { (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "p = p + 1;" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }" else (compound_statement "{\n          if (bVar3 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          p = p + 1;\n          iVar19 = 0;\n        }" { (if_statement "if (bVar3 != 0x2d) goto LAB_003c9c26;" if (parenthesized_expression "(bVar3 != 0x2d)" ( (binary_expression "bVar3 != 0x2d" identifier != number_literal) )) (goto_statement "goto LAB_003c9c26;" goto statement_identifier ;)) (expression_statement "local_4c8 = local_4c8 + 6;" (assignment_expression "local_4c8 = local_4c8 + 6" identifier = (binary_expression "local_4c8 + 6" identifier + number_literal)) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "p = p + 1;" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;) })) (expression_statement "p = get_params(p + 1,param,&n);" (assignment_expression "p = get_params(p + 1,param,&n)" identifier = (call_expression "get_params(p + 1,param,&n)" identifier (argument_list "(p + 1,param,&n)" ( (binary_expression "p + 1" identifier + number_literal) , identifier , (pointer_expression "&n" & identifier) )))) ;) (if_statement "if (n < 1) goto LAB_003c9c9d;" if (parenthesized_expression "(n < 1)" ( (binary_expression "n < 1" identifier < number_literal) )) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;)) (if_statement "if ((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))\n      goto LAB_003c9c9d;" if (parenthesized_expression "((param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)))" ( (binary_expression "(param[0] < 1) || (local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1))" (parenthesized_expression "(param[0] < 1)" ( (binary_expression "param[0] < 1" (subscript_expression "param[0]" identifier [ number_literal ]) < number_literal) )) || (parenthesized_expression "(local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1))" ( (comma_expression "local_520 = param[0], (long)param[0] <= (long)(~uVar13 - 1)" (assignment_expression "local_520 = param[0]" identifier = (subscript_expression "param[0]" identifier [ number_literal ])) , (binary_expression "(long)param[0] <= (long)(~uVar13 - 1)" (cast_expression "(long)param[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "param[0]" identifier [ number_literal ])) <= (cast_expression "(long)(~uVar13 - 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) ))))) ))) )) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;)) (labeled_statement "LAB_003ca670:\n      uVar8 = local_4a0 + 1U;" statement_identifier : (expression_statement "uVar8 = local_4a0 + 1U;" (assignment_expression "uVar8 = local_4a0 + 1U" identifier = (binary_expression "local_4a0 + 1U" identifier + number_literal)) ;)) (if_statement "if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar8 = local_518;\n      }" if (parenthesized_expression "((int)(local_4a0 + 1U) <= (int)local_518)" ( (binary_expression "(int)(local_4a0 + 1U) <= (int)local_518" (cast_expression "(int)(local_4a0 + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_4a0 + 1U)" ( (binary_expression "local_4a0 + 1U" identifier + number_literal) ))) <= (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar8 = local_518;\n      }" { (expression_statement "uVar8 = local_518;" (assignment_expression "uVar8 = local_518" identifier = identifier) ;) })) (expression_statement "uVar25 = local_4bc + 1U;" (assignment_expression "uVar25 = local_4bc + 1U" identifier = (binary_expression "local_4bc + 1U" identifier + number_literal)) ;) (if_statement "if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar25 = local_514;\n      }" if (parenthesized_expression "((int)(local_4bc + 1U) <= (int)local_514)" ( (binary_expression "(int)(local_4bc + 1U) <= (int)local_514" (cast_expression "(int)(local_4bc + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_4bc + 1U)" ( (binary_expression "local_4bc + 1U" identifier + number_literal) ))) <= (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar25 = local_514;\n      }" { (expression_statement "uVar25 = local_514;" (assignment_expression "uVar25 = local_514" identifier = identifier) ;) })) (if_statement "if (((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)) {\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }" if (parenthesized_expression "(((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23))" ( (binary_expression "((int)uVar8 < (int)local_52c) || ((int)uVar25 < (int)uVar23)" (parenthesized_expression "((int)uVar8 < (int)local_52c)" ( (binary_expression "(int)uVar8 < (int)local_52c" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)uVar25 < (int)uVar23)" ( (binary_expression "(int)uVar25 < (int)uVar23" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        sVar22 = (size_t)(int)uVar8;\n        MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);\n        if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);\n        if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = puVar10;\n        local_52c = uVar8;\n        uVar23 = uVar25;\n      }" { (expression_statement "sVar22 = (size_t)(int)uVar8;" (assignment_expression "sVar22 = (size_t)(int)uVar8" identifier = (cast_expression "(size_t)(int)uVar8" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception);" (assignment_expression "MVar6 = SetImageExtent(image,sVar22,(long)(int)uVar25,exception)" identifier = (call_expression "SetImageExtent(image,sVar22,(long)(int)uVar25,exception)" identifier (argument_list "(image,sVar22,(long)(int)uVar25,exception)" ( identifier , identifier , (cast_expression "(long)(int)uVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25);" (assignment_expression "puVar10 = (uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25)" identifier = (cast_expression "(uchar *)AcquireQuantumMemory(sVar22,(long)(int)uVar25)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar22,(long)(int)uVar25)" identifier (argument_list "(sVar22,(long)(int)uVar25)" ( identifier , (cast_expression "(long)(int)uVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (puVar10 == (uchar *)0x0) {\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }" if (parenthesized_expression "(puVar10 == (uchar *)0x0)" ( (binary_expression "puVar10 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          MVar6 = MagickFalse;\n          goto LAB_003c9a8e;\n        }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar25) {\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }" if (parenthesized_expression "(0 < (int)uVar25)" ( (binary_expression "0 < (int)uVar25" number_literal < (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar19 = 0;\n          iVar20 = 0;\n          uVar23 = 0;\n          do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);\n        }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (do_statement "do {\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          } while (uVar25 != uVar23);" do (compound_statement "{\n            memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);\n            uVar23 = uVar23 + 1;\n            iVar20 = iVar20 + local_52c;\n            iVar19 = iVar19 + uVar8;\n          }" { (expression_statement "memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22);" (call_expression "memcpy(puVar10 + iVar19,local_550 + iVar20,sVar22)" identifier (argument_list "(puVar10 + iVar19,local_550 + iVar20,sVar22)" ( (binary_expression "puVar10 + iVar19" identifier + identifier) , (binary_expression "local_550 + iVar20" identifier + identifier) , identifier ))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + local_52c;" (assignment_expression "iVar20 = iVar20 + local_52c" identifier = (binary_expression "iVar20 + local_52c" identifier + identifier)) ;) (expression_statement "iVar19 = iVar19 + uVar8;" (assignment_expression "iVar19 = iVar19 + uVar8" identifier = (binary_expression "iVar19 + uVar8" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar25 != uVar23)" ( (binary_expression "uVar25 != uVar23" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = puVar10;" (assignment_expression "local_550 = puVar10" identifier = identifier) ;) (expression_statement "local_52c = uVar8;" (assignment_expression "local_52c = uVar8" identifier = identifier) ;) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" identifier = identifier) ;) })) (expression_statement "*pixels = local_550;" (assignment_expression "*pixels = local_550" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "*pwidth = (long)(int)local_52c;" (assignment_expression "*pwidth = (long)(int)local_52c" (pointer_expression "*pwidth" * identifier) = (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*pheight = (long)(int)uVar23;" (assignment_expression "*pheight = (long)(int)uVar23" (pointer_expression "*pheight" * identifier) = (cast_expression "(long)(int)uVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*ncolors = (long)(local_4c4 + 1);" (assignment_expression "*ncolors = (long)(local_4c4 + 1)" (pointer_expression "*ncolors" * identifier) = (cast_expression "(long)(local_4c4 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_4c4 + 1)" ( (binary_expression "local_4c4 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4);" (assignment_expression "puVar10 = (uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4)" identifier = (cast_expression "(uchar *)AcquireQuantumMemory((long)(local_4c4 + 1),4)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory((long)(local_4c4 + 1),4)" identifier (argument_list "((long)(local_4c4 + 1),4)" ( (cast_expression "(long)(local_4c4 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_4c4 + 1)" ( (binary_expression "local_4c4 + 1" identifier + number_literal) ))) , number_literal ))))) ;) (expression_statement "*palette = puVar10;" (assignment_expression "*palette = puVar10" (pointer_expression "*palette" * identifier) = identifier) ;) (expression_statement "MVar6 = MagickFalse;" (assignment_expression "MVar6 = MagickFalse" identifier = identifier) ;) (if_statement "if (puVar10 != (uchar *)0x0) {\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }" if (parenthesized_expression "(puVar10 != (uchar *)0x0)" ( (binary_expression "puVar10 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        n = 0;\n        if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }\n      }" { (expression_statement "n = 0;" (assignment_expression "n = 0" identifier = number_literal) ;) (if_statement "if ((long)*ncolors < 1) {\n          MVar6 = MagickTrue;\n        }\n        else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }" if (parenthesized_expression "((long)*ncolors < 1)" ( (binary_expression "(long)*ncolors < 1" (cast_expression "(long)*ncolors" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ncolors" * identifier)) < number_literal) )) (compound_statement "{\n          MVar6 = MagickTrue;\n        }" { (expression_statement "MVar6 = MagickTrue;" (assignment_expression "MVar6 = MagickTrue" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }" else (compound_statement "{\n          do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);\n          MVar6 = MagickTrue;\n        }" { (do_statement "do {\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          } while ((long)n < (long)*ncolors);" do (compound_statement "{\n            (*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);\n            (*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);\n            (*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];\n            (*palette)[(long)(n << 2) + 3] = 0xff;\n            n = n + 1;\n          }" { (expression_statement "(*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2);" (assignment_expression "(*palette)[n * 4] = (uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2)" (subscript_expression "(*palette)[n * 4]" (parenthesized_expression "(*palette)" ( (pointer_expression "*palette" * identifier) )) [ (binary_expression "n * 4" identifier * number_literal) ]) = (binary_expression "(uchar)*(undefined2 *)((long)sixel_palet + (long)n * 4 + 2)" (parenthesized_expression "(uchar)" ( identifier )) * (cast_expression "(undefined2 *)((long)sixel_palet + (long)n * 4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)sixel_palet + (long)n * 4 + 2)" ( (binary_expression "(long)sixel_palet + (long)n * 4 + 2" (binary_expression "(long)sixel_palet + (long)n * 4" (cast_expression "(long)sixel_palet" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)n * 4" (cast_expression "(long)n" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "(*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8);" (assignment_expression "(*palette)[(long)(n * 4) + 1] = (uchar)((uint)sixel_palet[n] >> 8)" (subscript_expression "(*palette)[(long)(n * 4) + 1]" (parenthesized_expression "(*palette)" ( (pointer_expression "*palette" * identifier) )) [ (binary_expression "(long)(n * 4) + 1" (cast_expression "(long)(n * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(n * 4)" ( (binary_expression "n * 4" identifier * number_literal) ))) + number_literal) ]) = (call_expression "(uchar)((uint)sixel_palet[n] >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)sixel_palet[n] >> 8)" ( (binary_expression "(uint)sixel_palet[n] >> 8" (cast_expression "(uint)sixel_palet[n]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "sixel_palet[n]" identifier [ identifier ])) >> number_literal) )))) ;) (expression_statement "(*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n];" (assignment_expression "(*palette)[(long)(n * 4) + 2] = (uchar)sixel_palet[n]" (subscript_expression "(*palette)[(long)(n * 4) + 2]" (parenthesized_expression "(*palette)" ( (pointer_expression "*palette" * identifier) )) [ (binary_expression "(long)(n * 4) + 2" (cast_expression "(long)(n * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(n * 4)" ( (binary_expression "n * 4" identifier * number_literal) ))) + number_literal) ]) = (cast_expression "(uchar)sixel_palet[n]" ( (type_descriptor "uchar" type_identifier) ) (subscript_expression "sixel_palet[n]" identifier [ identifier ]))) ;) (expression_statement "(*palette)[(long)(n << 2) + 3] = 0xff;" (assignment_expression "(*palette)[(long)(n << 2) + 3] = 0xff" (subscript_expression "(*palette)[(long)(n << 2) + 3]" (parenthesized_expression "(*palette)" ( (pointer_expression "*palette" * identifier) )) [ (binary_expression "(long)(n << 2) + 3" (cast_expression "(long)(n << 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(n << 2)" ( (binary_expression "n << 2" identifier << number_literal) ))) + number_literal) ]) = number_literal) ;) (expression_statement "n = n + 1;" (assignment_expression "n = n + 1" identifier = (binary_expression "n + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long)n < (long)*ncolors)" ( (binary_expression "(long)n < (long)*ncolors" (cast_expression "(long)n" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)*ncolors" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ncolors" * identifier))) )) ;) (expression_statement "MVar6 = MagickTrue;" (assignment_expression "MVar6 = MagickTrue" identifier = identifier) ;) }))) })) })) })) (labeled_statement "LAB_003c9a8e:\n  if (lVar4 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar6;\n  }" statement_identifier : (if_statement "if (lVar4 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar6;\n  }" if (parenthesized_expression "(lVar4 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar4 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return MVar6;\n  }" { (return_statement "return MVar6;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)" identifier (parameter_list "(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long *param_6" (sized_type_specifier "long" long) (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "long *param_7" (sized_type_specifier "long" long) (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined8 param_8" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "void *local_550;" primitive_type (pointer_declarator "*local_550" * identifier) ;) (declaration "uint local_52c;" type_identifier identifier ;) (declaration "int local_520;" primitive_type identifier ;) (declaration "int local_51c;" primitive_type identifier ;) (declaration "uint local_518;" type_identifier identifier ;) (declaration "uint local_514;" type_identifier identifier ;) (declaration "int local_4c8;" primitive_type identifier ;) (declaration "int local_4c4;" primitive_type identifier ;) (declaration "int local_4bc;" primitive_type identifier ;) (declaration "int local_4a0;" primitive_type identifier ;) (declaration "int local_47c;" primitive_type identifier ;) (declaration "undefined8 local_478;" type_identifier identifier ;) (declaration "uint local_470;" type_identifier identifier ;) (declaration "uint uStack_46c;" type_identifier identifier ;) (declaration "undefined8 local_468;" type_identifier identifier ;) (declaration "undefined8 local_460;" type_identifier identifier ;) (declaration "undefined8 local_458;" type_identifier identifier ;) (declaration "undefined4 uStack_448;" type_identifier identifier ;) (declaration "int aiStack_a8 [26];" primitive_type (array_declarator "aiStack_a8 [26]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_478 = 0;" (assignment_expression "local_478 = 0" identifier = number_literal) ;) (expression_statement "local_470 = 0;" (assignment_expression "local_470 = 0" identifier = number_literal) ;) (expression_statement "uStack_46c = 0;" (assignment_expression "uStack_46c = 0" identifier = number_literal) ;) (expression_statement "local_468 = 0;" (assignment_expression "local_468 = 0" identifier = number_literal) ;) (expression_statement "local_460 = 0;" (assignment_expression "local_460 = 0" identifier = number_literal) ;) (expression_statement "local_458 = 0;" (assignment_expression "local_458 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pbVar13 = param_2;" (assignment_expression "pbVar13 = param_2" identifier = identifier) ;) (do_statement "do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);" do (compound_statement "{\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "bVar1 = *pbVar13;" (assignment_expression "bVar1 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) ;) (expression_statement "iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);" (assignment_expression "iVar3 = SetImageExtent(param_1,0x800,0x800,param_8)" identifier = (call_expression "SetImageExtent(param_1,0x800,0x800,param_8)" identifier (argument_list "(param_1,0x800,0x800,param_8)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }" { (expression_statement "local_550 = (void *)AcquireQuantumMemory(0x800,0x800);" (assignment_expression "local_550 = (void *)AcquireQuantumMemory(0x800,0x800)" identifier = (cast_expression "(void *)AcquireQuantumMemory(0x800,0x800)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x800,0x800)" identifier (argument_list "(0x800,0x800)" ( number_literal , number_literal ))))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }" if (parenthesized_expression "(local_550 != (void *)0x0)" ( (binary_expression "local_550 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }" { (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);" do (compound_statement "{\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      }" { (expression_statement "*(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);" (assignment_expression "*(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6)" (pointer_expression "*(undefined4 *)((long)&uStack_448 + lVar6)" * (cast_expression "(undefined4 *)((long)&uStack_448 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_448 + lVar6)" ( (binary_expression "(long)&uStack_448 + lVar6" (cast_expression "(long)&uStack_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_448" & identifier)) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)&DAT_0047bf80 + lVar6)" * (cast_expression "(undefined4 *)((long)&DAT_0047bf80 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_0047bf80 + lVar6)" ( (binary_expression "(long)&DAT_0047bf80 + lVar6" (cast_expression "(long)&DAT_0047bf80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_0047bf80" & identifier)) + identifier) ))))) ;) (expression_statement "lVar6 = lVar6 + 4;" (assignment_expression "lVar6 = lVar6 + 4" identifier = (binary_expression "lVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar6 != 0x40)" ( (binary_expression "lVar6 != 0x40" identifier != number_literal) )) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0x34;" (assignment_expression "iVar3 = 0x34" identifier = number_literal) ;) (do_statement "do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);" do (compound_statement "{\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      }" { (expression_statement "iVar16 = iVar3 + -0x24;" (assignment_expression "iVar16 = iVar3 + -0x24" identifier = (binary_expression "iVar3 + -0x24" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar17;" (assignment_expression "iVar12 = iVar17" identifier = identifier) ;) (do_statement "do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);" do (compound_statement "{\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        }" { (expression_statement "iVar4 = iVar12;" (assignment_expression "iVar4 = iVar12" identifier = identifier) ;) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" identifier = identifier) ;) (do_statement "do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);" do (compound_statement "{\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          }" { (expression_statement "(&uStack_448)[iVar10] = iVar4;" (assignment_expression "(&uStack_448)[iVar10] = iVar4" (subscript_expression "(&uStack_448)[iVar10]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 0x33;" (assignment_expression "iVar4 = iVar4 + 0x33" identifier = (binary_expression "iVar4 + 0x33" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != iVar12 + 0x132)" ( (binary_expression "iVar4 != iVar12 + 0x132" identifier != (binary_expression "iVar12 + 0x132" identifier + number_literal)) )) ;) (expression_statement "iVar16 = iVar16 + 6;" (assignment_expression "iVar16 = iVar16 + 6" identifier = (binary_expression "iVar16 + 6" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + 0x3300;" (assignment_expression "iVar12 = iVar12 + 0x3300" identifier = (binary_expression "iVar12 + 0x3300" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 != iVar3)" ( (binary_expression "iVar16 != iVar3" identifier != identifier) )) ;) (expression_statement "iVar3 = iVar3 + 0x24;" (assignment_expression "iVar3 = iVar3 + 0x24" identifier = (binary_expression "iVar3 + 0x24" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + 0x330000;" (assignment_expression "iVar17 = iVar17 + 0x330000" identifier = (binary_expression "iVar17 + 0x330000" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0x1320000)" ( (binary_expression "iVar17 != 0x1320000" identifier != number_literal) )) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0xe8;" (assignment_expression "iVar17 = 0xe8" identifier = number_literal) ;) (do_statement "do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);" do (compound_statement "{\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      }" { (expression_statement "(&uStack_448)[iVar17] = iVar3;" (assignment_expression "(&uStack_448)[iVar17] = iVar3" (subscript_expression "(&uStack_448)[iVar17]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 0xb0b0b;" (assignment_expression "iVar3 = iVar3 + 0xb0b0b" identifier = (binary_expression "iVar3 + 0xb0b0b" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != 0x1090908)" ( (binary_expression "iVar3 != 0x1090908" identifier != number_literal) )) ;) (expression_statement "local_47c = 0x100;" (assignment_expression "local_47c = 0x100" identifier = number_literal) ;) (expression_statement "memset(local_550,0,0x400000);" (call_expression "memset(local_550,0,0x400000)" identifier (argument_list "(local_550,0,0x400000)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "local_52c = 0x800;" (assignment_expression "local_52c = 0x800" identifier = number_literal) ;) (expression_statement "local_4c4 = 2;" (assignment_expression "local_4c4 = 2" identifier = number_literal) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (expression_statement "local_518 = 0;" (assignment_expression "local_518 = 0" identifier = number_literal) ;) (expression_statement "local_4bc = 0;" (assignment_expression "local_4bc = 0" identifier = number_literal) ;) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" identifier = number_literal) ;) (expression_statement "local_4c8 = 0;" (assignment_expression "local_4c8 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0x800;" (assignment_expression "uVar19 = 0x800" identifier = number_literal) ;) (labeled_statement "LAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" statement_identifier : (while_statement "while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" { (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_003ca670;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (if_statement "if (bVar1 != 0x1b) break;" if (parenthesized_expression "(bVar1 != 0x1b)" ( (binary_expression "bVar1 != 0x1b" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" if (parenthesized_expression "(param_2[1] == 0x50)" ( (binary_expression "param_2[1] == 0x50" (subscript_expression "param_2[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" statement_identifier : (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;)) (if_statement "if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }" if (parenthesized_expression "(((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0))" ( (binary_expression "((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)" (parenthesized_expression "((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c))" ( (binary_expression "(*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)" (parenthesized_expression "(*param_2 == 0x71)" ( (binary_expression "*param_2 == 0x71" (pointer_expression "*param_2" * identifier) == number_literal) )) && (parenthesized_expression "(param_2 = param_2 + 1, 2 < local_47c)" ( (comma_expression "param_2 = param_2 + 1, 2 < local_47c" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) , (binary_expression "2 < local_47c" number_literal < identifier)) ))) )) && (parenthesized_expression "(local_470 == 0)" ( (binary_expression "local_470 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_470 = 10;\n          }" { (expression_statement "local_470 = 10;" (assignment_expression "local_470 = 10" identifier = number_literal) ;) })) }) (else_clause "else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" else (compound_statement "{\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" { (if_statement "if (param_2[1] == 0x5c) goto LAB_003ca670;" if (parenthesized_expression "(param_2[1] == 0x5c)" ( (binary_expression "param_2[1] == 0x5c" (subscript_expression "param_2[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (labeled_statement "LAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }" statement_identifier : (if_statement "if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }" if (parenthesized_expression "((byte)(bVar1 - 0x3f) < 0x41)" ( (binary_expression "(byte)(bVar1 - 0x3f) < 0x41" (call_expression "(byte)(bVar1 - 0x3f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 - 0x3f)" ( (binary_expression "bVar1 - 0x3f" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }" { (expression_statement "iVar17 = iVar3 + local_520;" (assignment_expression "iVar17 = iVar3 + local_520" identifier = (binary_expression "iVar3 + local_520" identifier + identifier)) ;) (expression_statement "uVar5 = uVar19;" (assignment_expression "uVar5 = uVar19" identifier = identifier) ;) (if_statement "if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }" if (parenthesized_expression "(((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6))" ( (binary_expression "((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)" (parenthesized_expression "((int)local_52c < iVar17)" ( (binary_expression "(int)local_52c < iVar17" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) || (parenthesized_expression "((int)uVar19 < local_4c8 + 6)" ( (binary_expression "(int)uVar19 < local_4c8 + 6" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "local_4c8 + 6" identifier + number_literal)) ))) )) (compound_statement "{\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }" { (expression_statement "uVar21 = local_52c;" (assignment_expression "uVar21 = local_52c" identifier = identifier) ;) (do_statement "do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);" do (compound_statement "{\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              }" { (do_statement "do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);" do (compound_statement "{\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                }" { (expression_statement "uVar5 = uVar5 * 2;" (assignment_expression "uVar5 = uVar5 * 2" identifier = (binary_expression "uVar5 * 2" identifier * number_literal)) ;) (expression_statement "uVar21 = uVar21 * 2;" (assignment_expression "uVar21 = uVar21 * 2" identifier = (binary_expression "uVar21 * 2" identifier * number_literal)) ;) }) while (parenthesized_expression "((int)uVar21 < iVar17)" ( (binary_expression "(int)uVar21 < iVar17" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) }) while (parenthesized_expression "((int)uVar5 < local_4c8 + 6)" ( (binary_expression "(int)uVar5 < local_4c8 + 6" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "local_4c8 + 6" identifier + number_literal)) )) ;) (expression_statement "lVar6 = (long)(int)uVar5;" (assignment_expression "lVar6 = (long)(int)uVar5" identifier = (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "lVar20 = (long)(int)uVar21;" (assignment_expression "lVar20 = (long)(int)uVar21" identifier = (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);" (assignment_expression "iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier = (call_expression "SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier (argument_list "(param_1,lVar20,lVar6,param_8)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) goto LAB_003ca670;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6)" identifier = (cast_expression "(void *)AcquireQuantumMemory(lVar20,lVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(lVar20,lVar6)" identifier (argument_list "(lVar20,lVar6)" ( identifier , identifier ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "memset(pvVar7,0,lVar6 * lVar20);" (call_expression "memset(pvVar7,0,lVar6 * lVar20)" identifier (argument_list "(pvVar7,0,lVar6 * lVar20)" ( identifier , number_literal , (binary_expression "lVar6 * lVar20" identifier * identifier) ))) ;) (if_statement "if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);" do (compound_statement "{\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                }" { (expression_statement "memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);" (call_expression "memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c)" identifier (argument_list "((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c)" ( (cast_expression "(void *)((long)iVar16 + (long)pvVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar16 + (long)pvVar7)" ( (binary_expression "(long)iVar16 + (long)pvVar7" (cast_expression "(long)iVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(void *)((long)iVar12 + (long)local_550)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar12 + (long)local_550)" ( (binary_expression "(long)iVar12 + (long)local_550" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + local_52c;" (assignment_expression "iVar12 = iVar12 + local_52c" identifier = (binary_expression "iVar12 + local_52c" identifier + identifier)) ;) (expression_statement "iVar16 = iVar16 + uVar21;" (assignment_expression "iVar16 = iVar16 + uVar21" identifier = (binary_expression "iVar16 + uVar21" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar19 != uVar18)" ( (binary_expression "uVar19 != uVar18" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" identifier = identifier) ;) (expression_statement "local_52c = uVar21;" (assignment_expression "local_52c = uVar21" identifier = identifier) ;) })) (if_statement "if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }" if (parenthesized_expression "(local_4c4 < local_51c)" ( (binary_expression "local_4c4 < local_51c" identifier < identifier) )) (compound_statement "{\n              local_4c4 = local_51c;\n            }" { (expression_statement "local_4c4 = local_51c;" (assignment_expression "local_4c4 = local_51c" identifier = identifier) ;) })) (expression_statement "pbVar13 = param_2 + 1;" (assignment_expression "pbVar13 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = *param_2 - 0x3f;" (assignment_expression "uVar21 = *param_2 - 0x3f" identifier = (binary_expression "*param_2 - 0x3f" (pointer_expression "*param_2" * identifier) - number_literal)) ;) (expression_statement "param_2 = pbVar13;" (assignment_expression "param_2 = pbVar13" identifier = identifier) ;) (expression_statement "uVar19 = uVar5;" (assignment_expression "uVar19 = uVar5" identifier = identifier) ;) (if_statement "if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" { (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = iVar17;" (assignment_expression "iVar3 = iVar17" identifier = identifier) ;) }) (else_clause "else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" else (if_statement "if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" if (parenthesized_expression "(local_520 < 2)" ( (binary_expression "local_520 < 2" identifier < number_literal) )) (compound_statement "{\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }" { (expression_statement "uVar15 = (long)(int)uVar5 * (long)(int)local_52c;" (assignment_expression "uVar15 = (long)(int)uVar5 * (long)(int)local_52c" identifier = (binary_expression "(long)(int)uVar5 * (long)(int)local_52c" (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) * (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);" do (compound_statement "{\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              }" { (if_statement "if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }" if (parenthesized_expression "((uVar21 & uVar5) != 0)" ( (binary_expression "(uVar21 & uVar5) != 0" (parenthesized_expression "(uVar21 & uVar5)" ( (binary_expression "uVar21 & uVar5" identifier & identifier) )) != number_literal) )) (compound_statement "{\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }" { (expression_statement "iVar17 = local_4c8 + (int)lVar6;" (assignment_expression "iVar17 = local_4c8 + (int)lVar6" identifier = (binary_expression "local_4c8 + (int)lVar6" identifier + (cast_expression "(int)lVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;" (assignment_expression "uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3" identifier = (binary_expression "(long)iVar17 * (long)(int)local_52c + (long)iVar3" (binary_expression "(long)iVar17 * (long)(int)local_52c" (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) + (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }" if (parenthesized_expression "(uVar15 < uVar8 || uVar15 - uVar8 == 0)" ( (binary_expression "uVar15 < uVar8 || uVar15 - uVar8 == 0" (binary_expression "uVar15 < uVar8" identifier < identifier) || (binary_expression "uVar15 - uVar8 == 0" (binary_expression "uVar15 - uVar8" identifier - identifier) == number_literal)) )) (compound_statement "{\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;" (assignment_expression "*(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c" (pointer_expression "*(undefined1 *)((long)local_550 + uVar8)" * (cast_expression "(undefined1 *)((long)local_550 + uVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_550 + uVar8)" ( (binary_expression "(long)local_550 + uVar8" (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (cast_expression "(undefined1)local_51c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }" if (parenthesized_expression "(local_4a0 < iVar3)" ( (binary_expression "local_4a0 < iVar3" identifier < identifier) )) (compound_statement "{\n                    local_4a0 = iVar3;\n                  }" { (expression_statement "local_4a0 = iVar3;" (assignment_expression "local_4a0 = iVar3" identifier = identifier) ;) })) (if_statement "if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }" if (parenthesized_expression "(local_4bc < iVar17)" ( (binary_expression "local_4bc < iVar17" identifier < identifier) )) (compound_statement "{\n                    local_4bc = iVar17;\n                  }" { (expression_statement "local_4bc = iVar17;" (assignment_expression "local_4bc = iVar17" identifier = identifier) ;) })) })) (expression_statement "uVar5 = uVar5 * 2;" (assignment_expression "uVar5 = uVar5 * 2" identifier = (binary_expression "uVar5 * 2" identifier * number_literal)) ;) (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" identifier = (binary_expression "lVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar6 != 6)" ( (binary_expression "lVar6 != 6" identifier != number_literal) )) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" else (compound_statement "{\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" { (expression_statement "lVar6 = (long)(int)local_52c;" (assignment_expression "lVar6 = (long)(int)local_52c" identifier = (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "sVar11 = (size_t)local_520;" (assignment_expression "sVar11 = (size_t)local_520" identifier = (cast_expression "(size_t)local_520" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (do_statement "do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);" do (compound_statement "{\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              }" { (if_statement "if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }" if (parenthesized_expression "((uVar18 & uVar21) != 0)" ( (binary_expression "(uVar18 & uVar21) != 0" (parenthesized_expression "(uVar18 & uVar21)" ( (binary_expression "uVar18 & uVar21" identifier & identifier) )) != number_literal) )) (compound_statement "{\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }" { (expression_statement "local_47c = 1;" (assignment_expression "local_47c = 1" identifier = number_literal) ;) (if_statement "if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }" if (parenthesized_expression "(iVar12 + 1 < 6)" ( (binary_expression "iVar12 + 1 < 6" (binary_expression "iVar12 + 1" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }" { (expression_statement "uVar2 = uVar18;" (assignment_expression "uVar2 = uVar18" identifier = identifier) ;) (for_statement "for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }" for ( (assignment_expression "iVar16 = 2" identifier = number_literal) ; (parenthesized_expression "(uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16))" ( (comma_expression "uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)" (assignment_expression "uVar2 = uVar2 * 2" identifier = (binary_expression "uVar2 * 2" identifier * number_literal)) , (binary_expression "(uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)" (binary_expression "(uVar21 & uVar2) != 0" (parenthesized_expression "(uVar21 & uVar2)" ( (binary_expression "uVar21 & uVar2" identifier & identifier) )) != number_literal) && (parenthesized_expression "(local_47c = iVar16, 6 - iVar12 != iVar16)" ( (comma_expression "local_47c = iVar16, 6 - iVar12 != iVar16" (assignment_expression "local_47c = iVar16" identifier = identifier) , (binary_expression "6 - iVar12 != iVar16" (binary_expression "6 - iVar12" number_literal - identifier) != identifier)) )))) )) ; (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n                    }" { })) })) (expression_statement "iVar4 = local_47c;" (assignment_expression "iVar4 = local_47c" identifier = identifier) ;) (expression_statement "iVar16 = local_4c8 + iVar12;" (assignment_expression "iVar16 = local_4c8 + iVar12" identifier = (binary_expression "local_4c8 + iVar12" identifier + identifier)) ;) (expression_statement "iVar10 = iVar16 + local_47c;" (assignment_expression "iVar10 = iVar16 + local_47c" identifier = (binary_expression "iVar16 + local_47c" identifier + identifier)) ;) (if_statement "if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }" if (parenthesized_expression "(iVar16 < iVar10)" ( (binary_expression "iVar16 < iVar10" identifier < identifier) )) (compound_statement "{\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }" { (expression_statement "lVar20 = iVar16 * lVar6 + (long)iVar3;" (assignment_expression "lVar20 = iVar16 * lVar6 + (long)iVar3" identifier = (binary_expression "iVar16 * lVar6 + (long)iVar3" (binary_expression "iVar16 * lVar6" identifier * identifier) + (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }" if (parenthesized_expression "((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11)" ( (binary_expression "(ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11" (call_expression "(ulong)((int)uVar5 * lVar6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar5 * lVar6)" ( (binary_expression "(int)uVar5 * lVar6" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= (binary_expression "lVar20 + sVar11" identifier + identifier)) )) (compound_statement "{\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }" { (labeled_statement "LAB_003ca553:\n                      RelinquishMagickMemory(local_550);" statement_identifier : (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;" (assignment_expression "uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11" identifier = (binary_expression "(iVar16 + 1) * lVar6 + (long)iVar3 + sVar11" (binary_expression "(iVar16 + 1) * lVar6 + (long)iVar3" (binary_expression "(iVar16 + 1) * lVar6" (parenthesized_expression "(iVar16 + 1)" ( (binary_expression "iVar16 + 1" identifier + number_literal) )) * identifier) + (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + identifier)) ;) (while_statement "while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }" { (expression_statement "memset((void *)((long)local_550 + lVar20),local_51c,sVar11);" (call_expression "memset((void *)((long)local_550 + lVar20),local_51c,sVar11)" identifier (argument_list "((void *)((long)local_550 + lVar20),local_51c,sVar11)" ( (cast_expression "(void *)((long)local_550 + lVar20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_550 + lVar20)" ( (binary_expression "(long)local_550 + lVar20" (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (if_statement "if (iVar16 == iVar10) break;" if (parenthesized_expression "(iVar16 == iVar10)" ( (binary_expression "iVar16 == iVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar20 = uVar15 - sVar11;" (assignment_expression "lVar20 = uVar15 - sVar11" identifier = (binary_expression "uVar15 - sVar11" identifier - identifier)) ;) (expression_statement "bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;" (assignment_expression "bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15" identifier = (binary_expression "(ulong)((int)uVar5 * lVar6) <= uVar15" (call_expression "(ulong)((int)uVar5 * lVar6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar5 * lVar6)" ( (binary_expression "(int)uVar5 * lVar6" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= identifier)) ;) (expression_statement "uVar15 = uVar15 + lVar6;" (assignment_expression "uVar15 = uVar15 + lVar6" identifier = (binary_expression "uVar15 + lVar6" identifier + identifier)) ;) (if_statement "if (bVar22) goto LAB_003ca553;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_003ca553;" goto statement_identifier ;)) })) })) (if_statement "if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }" if (parenthesized_expression "(local_4a0 < iVar17 + -1)" ( (binary_expression "local_4a0 < iVar17 + -1" identifier < (binary_expression "iVar17 + -1" identifier + number_literal)) )) (compound_statement "{\n                    local_4a0 = iVar17 + -1;\n                  }" { (expression_statement "local_4a0 = iVar17 + -1;" (assignment_expression "local_4a0 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar16 = iVar10 + -1;" (assignment_expression "iVar16 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (if_statement "if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }" if (parenthesized_expression "(iVar10 + -1 <= local_4bc)" ( (binary_expression "iVar10 + -1 <= local_4bc" (binary_expression "iVar10 + -1" identifier + number_literal) <= identifier) )) (compound_statement "{\n                    iVar16 = local_4bc;\n                  }" { (expression_statement "iVar16 = local_4bc;" (assignment_expression "iVar16 = local_4bc" identifier = identifier) ;) })) (expression_statement "iVar12 = iVar12 + iVar4 + -1;" (assignment_expression "iVar12 = iVar12 + iVar4 + -1" identifier = (binary_expression "iVar12 + iVar4 + -1" (binary_expression "iVar12 + iVar4" identifier + identifier) + number_literal)) ;) (expression_statement "uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);" (assignment_expression "uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f)" identifier = (binary_expression "uVar18 << ((byte)(iVar4 + -1) & 0x1f)" identifier << (parenthesized_expression "((byte)(iVar4 + -1) & 0x1f)" ( (binary_expression "(byte)(iVar4 + -1) & 0x1f" (call_expression "(byte)(iVar4 + -1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar4 + -1)" ( (binary_expression "iVar4 + -1" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "local_4bc = iVar16;" (assignment_expression "local_4bc = iVar16" identifier = identifier) ;) })) (expression_statement "uVar18 = uVar18 << 1;" (assignment_expression "uVar18 = uVar18 << 1" identifier = (binary_expression "uVar18 << 1" identifier << number_literal)) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 < 6)" ( (binary_expression "iVar12 < 6" identifier < number_literal) )) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = iVar17;" (assignment_expression "iVar3 = iVar17" identifier = identifier) ;) }))))) }) (else_clause "else {\n            param_2 = param_2 + 1;\n          }" else (compound_statement "{\n            param_2 = param_2 + 1;\n          }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })))) }))) }))) (if_statement "if (bVar1 == 0x90) goto LAB_003c9c82;" if (parenthesized_expression "(bVar1 == 0x90)" ( (binary_expression "bVar1 == 0x90" identifier == number_literal) )) (goto_statement "goto LAB_003c9c82;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x9c) goto LAB_003ca670;" if (parenthesized_expression "(bVar1 == 0x9c)" ( (binary_expression "bVar1 == 0x9c" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (if_statement "if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }" { (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;) (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) (if_statement "if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }" if (parenthesized_expression "((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1))" ( (binary_expression "(2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)" (parenthesized_expression "(2 < local_47c)" ( (binary_expression "2 < local_47c" number_literal < identifier) )) && (parenthesized_expression "(uVar5 = local_470 & 0xffff, (int)local_470 < 1)" ( (comma_expression "uVar5 = local_470 & 0xffff, (int)local_470 < 1" (assignment_expression "uVar5 = local_470 & 0xffff" identifier = (binary_expression "local_470 & 0xffff" identifier & number_literal)) , (binary_expression "(int)local_470 < 1" (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = local_518;\n        }" { (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) })) (expression_statement "local_518 = uVar5;" (assignment_expression "local_518 = uVar5" identifier = identifier) ;) (expression_statement "uVar5 = local_514;" (assignment_expression "uVar5 = local_514" identifier = identifier) ;) (if_statement "if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }" if (parenthesized_expression "((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1))" ( (binary_expression "(3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)" (parenthesized_expression "(3 < local_47c)" ( (binary_expression "3 < local_47c" number_literal < identifier) )) && (parenthesized_expression "(uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)" ( (comma_expression "uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1" (assignment_expression "uVar5 = uStack_46c & 0xffff" identifier = (binary_expression "uStack_46c & 0xffff" identifier & number_literal)) , (binary_expression "(int)uStack_46c < 1" (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = local_514;\n        }" { (expression_statement "uVar5 = local_514;" (assignment_expression "uVar5 = local_514" identifier = identifier) ;) })) (expression_statement "local_514 = uVar5;" (assignment_expression "local_514 = uVar5" identifier = identifier) ;) (if_statement "if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }" if (parenthesized_expression "(((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514))" ( (binary_expression "((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)" (parenthesized_expression "((int)local_52c < (int)local_518)" ( (binary_expression "(int)local_52c < (int)local_518" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)uVar19 < (int)local_514)" ( (binary_expression "(int)uVar19 < (int)local_514" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }" { (expression_statement "uVar5 = local_52c;" (assignment_expression "uVar5 = local_52c" identifier = identifier) ;) (if_statement "if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }" if (parenthesized_expression "((int)local_52c <= (int)local_518)" ( (binary_expression "(int)local_52c <= (int)local_518" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar5 = local_518;\n          }" { (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) })) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" identifier = identifier) ;) (if_statement "if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }" if (parenthesized_expression "((int)uVar19 <= (int)local_514)" ( (binary_expression "(int)uVar19 <= (int)local_514" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar21 = local_514;\n          }" { (expression_statement "uVar21 = local_514;" (assignment_expression "uVar21 = local_514" identifier = identifier) ;) })) (expression_statement "lVar6 = (long)(int)uVar21;" (assignment_expression "lVar6 = (long)(int)uVar21" identifier = (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "lVar20 = (long)(int)uVar5;" (assignment_expression "lVar20 = (long)(int)uVar5" identifier = (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);" (assignment_expression "iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier = (call_expression "SetImageExtent(param_1,lVar20,lVar6,param_8)" identifier (argument_list "(param_1,lVar20,lVar6,param_8)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) goto LAB_003ca670;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003ca670;" goto statement_identifier ;)) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6)" identifier = (cast_expression "(void *)AcquireQuantumMemory(lVar20,lVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(lVar20,lVar6)" identifier (argument_list "(lVar20,lVar6)" ( identifier , identifier ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "memset(pvVar7,0,lVar6 * lVar20);" (call_expression "memset(pvVar7,0,lVar6 * lVar20)" identifier (argument_list "(pvVar7,0,lVar6 * lVar20)" ( identifier , number_literal , (binary_expression "lVar6 * lVar20" identifier * identifier) ))) ;) (if_statement "if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);" do (compound_statement "{\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            }" { (expression_statement "memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);" (call_expression "memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c)" identifier (argument_list "((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c)" ( (cast_expression "(void *)((long)iVar12 + (long)pvVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar12 + (long)pvVar7)" ( (binary_expression "(long)iVar12 + (long)pvVar7" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(void *)((long)iVar17 + (long)local_550)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar17 + (long)local_550)" ( (binary_expression "(long)iVar17 + (long)local_550" (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + local_52c;" (assignment_expression "iVar17 = iVar17 + local_52c" identifier = (binary_expression "iVar17 + local_52c" identifier + identifier)) ;) (expression_statement "iVar12 = iVar12 + uVar5;" (assignment_expression "iVar12 = iVar12 + uVar5" identifier = (binary_expression "iVar12 + uVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar19 != uVar18)" ( (binary_expression "uVar19 != uVar18" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" identifier = identifier) ;) (expression_statement "local_52c = uVar5;" (assignment_expression "local_52c = uVar5" identifier = identifier) ;) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" identifier = identifier) ;) })) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;) })) (if_statement "if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" if (parenthesized_expression "(bVar1 != 0x21)" ( (binary_expression "bVar1 != 0x21" identifier != number_literal) )) (compound_statement "{\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" { (if_statement "if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" if (parenthesized_expression "(bVar1 == 0x23)" ( (binary_expression "bVar1 == 0x23" identifier == number_literal) )) (compound_statement "{\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }" { (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;) (if_statement "if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }" if (parenthesized_expression "(0 < local_47c)" ( (binary_expression "0 < local_47c" number_literal < identifier) )) (compound_statement "{\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }" { (expression_statement "iVar17 = 0xff;" (assignment_expression "iVar17 = 0xff" identifier = number_literal) ;) (if_statement "if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }" if (parenthesized_expression "((int)local_478 < 0x100)" ( (binary_expression "(int)local_478 < 0x100" (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar17 = (int)local_478;\n            }" { (expression_statement "iVar17 = (int)local_478;" (assignment_expression "iVar17 = (int)local_478" identifier = (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (if_statement "if (-1 < iVar17) {\n              local_51c = iVar17;\n            }" if (parenthesized_expression "(-1 < iVar17)" ( (binary_expression "-1 < iVar17" number_literal < identifier) )) (compound_statement "{\n              local_51c = iVar17;\n            }" { (expression_statement "local_51c = iVar17;" (assignment_expression "local_51c = iVar17" identifier = identifier) ;) })) })) (if_statement "if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }" if (parenthesized_expression "(4 < local_47c)" ( (binary_expression "4 < local_47c" number_literal < identifier) )) (compound_statement "{\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }" { (if_statement "if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" if (parenthesized_expression "(local_478._4_4_ == 1)" ( (binary_expression "local_478._4_4_ == 1" (field_expression "local_478._4_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }" { (if_statement "if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }" if (parenthesized_expression "(0x168 < (int)local_470)" ( (binary_expression "0x168 < (int)local_470" number_literal < (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                local_470 = 0x168;\n              }" { (expression_statement "local_470 = 0x168;" (assignment_expression "local_470 = 0x168" identifier = number_literal) ;) })) (if_statement "if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }" if (parenthesized_expression "(100 < (int)uStack_46c)" ( (binary_expression "100 < (int)uStack_46c" number_literal < (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uStack_46c = 100;\n              }" { (expression_statement "uStack_46c = 100;" (assignment_expression "uStack_46c = 100" identifier = number_literal) ;) })) (if_statement "if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" if (parenthesized_expression "((int)local_468 < 0x65)" ( (binary_expression "(int)local_468 < 0x65" (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }" { (if_statement "if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }" if (parenthesized_expression "((int)local_468 != 0)" ( (binary_expression "(int)local_468 != 0" (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }" { (expression_statement "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);" (assignment_expression "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168)" identifier = (cast_expression "(int)(((long)(int)local_470 * 100) / 0x168)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((long)(int)local_470 * 100) / 0x168)" ( (binary_expression "((long)(int)local_470 * 100) / 0x168" (parenthesized_expression "((long)(int)local_470 * 100)" ( (binary_expression "(long)(int)local_470 * 100" (cast_expression "(long)(int)local_470" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) )) / number_literal) )))) ;) (expression_statement "iVar12 = (int)local_468;" (assignment_expression "iVar12 = (int)local_468" identifier = (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_003ca0ae;" goto statement_identifier ;) })) (expression_statement "iVar12 = (int)(uStack_46c * 0xff) / 100;" (assignment_expression "iVar12 = (int)(uStack_46c * 0xff) / 100" identifier = (binary_expression "(int)(uStack_46c * 0xff) / 100" (cast_expression "(int)(uStack_46c * 0xff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uStack_46c * 0xff)" ( (binary_expression "uStack_46c * 0xff" identifier * number_literal) ))) / number_literal)) ;) (expression_statement "iVar16 = iVar12;" (assignment_expression "iVar16 = iVar12" identifier = identifier) ;) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" identifier = identifier) ;) }) (else_clause "else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" else (compound_statement "{\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" { (expression_statement "local_468 = CONCAT44(local_468._4_4_,100);" (assignment_expression "local_468 = CONCAT44(local_468._4_4_,100)" identifier = (call_expression "CONCAT44(local_468._4_4_,100)" identifier (argument_list "(local_468._4_4_,100)" ( (field_expression "local_468._4_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);" (assignment_expression "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168)" identifier = (cast_expression "(int)(((long)(int)local_470 * 100) / 0x168)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((long)(int)local_470 * 100) / 0x168)" ( (binary_expression "((long)(int)local_470 * 100) / 0x168" (parenthesized_expression "((long)(int)local_470 * 100)" ( (binary_expression "(long)(int)local_470 * 100" (cast_expression "(long)(int)local_470" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) )) / number_literal) )))) ;) (expression_statement "iVar12 = 100;" (assignment_expression "iVar12 = 100" identifier = number_literal) ;) (labeled_statement "LAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" statement_identifier : (if_statement "if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" if (parenthesized_expression "((int)uStack_46c < 0x33)" ( (binary_expression "(int)uStack_46c < 0x33" (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }" { (expression_statement "lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;" (assignment_expression "lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32" identifier = (binary_expression "(long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32" (binary_expression "(long)(iVar12 + 100) * (long)(int)uStack_46c" (cast_expression "(long)(iVar12 + 100)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar12 + 100)" ( (binary_expression "iVar12 + 100" identifier + number_literal) ))) * (cast_expression "(long)(int)uStack_46c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) ;) (expression_statement "iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);" (assignment_expression "iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f)" identifier = (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar6 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar6 >> 0x3f)" ( (binary_expression "lVar6 >> 0x3f" identifier >> number_literal) ))))) ;) }) (else_clause "else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" else (compound_statement "{\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" { (expression_statement "lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;" (assignment_expression "lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32" identifier = (binary_expression "(long)iVar12 * (long)(int)uStack_46c + 0x32" (binary_expression "(long)iVar12 * (long)(int)uStack_46c" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * (cast_expression "(long)(int)uStack_46c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) ;) (expression_statement "iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));" (assignment_expression "iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" identifier = (binary_expression "(uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" (parenthesized_expression "(uStack_46c + iVar12)" ( (binary_expression "uStack_46c + iVar12" identifier + identifier) )) - (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar6 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar6 >> 0x3f)" ( (binary_expression "lVar6 >> 0x3f" identifier >> number_literal) )))) )))) ;) })))) (expression_statement "iVar10 = uStack_46c * 2 - iVar16;" (assignment_expression "iVar10 = uStack_46c * 2 - iVar16" identifier = (binary_expression "uStack_46c * 2 - iVar16" (binary_expression "uStack_46c * 2" identifier * number_literal) - identifier)) ;) (expression_statement "iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);" (assignment_expression "iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21)" identifier = (call_expression "FUN_003c9609(iVar10,iVar16,iVar17 + 0x21)" identifier (argument_list "(iVar10,iVar16,iVar17 + 0x21)" ( identifier , identifier , (binary_expression "iVar17 + 0x21" identifier + number_literal) )))) ;) (expression_statement "iVar12 = (iVar12 * 0xff + 0x32) / 100;" (assignment_expression "iVar12 = (iVar12 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar12 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar12 * 0xff + 0x32)" ( (binary_expression "iVar12 * 0xff + 0x32" (binary_expression "iVar12 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) (expression_statement "iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);" (assignment_expression "iVar4 = FUN_003c9609(iVar10,iVar16,iVar17)" identifier = (call_expression "FUN_003c9609(iVar10,iVar16,iVar17)" identifier (argument_list "(iVar10,iVar16,iVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);" (assignment_expression "iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21)" identifier = (call_expression "FUN_003c9609(iVar10,iVar16,iVar17 + -0x21)" identifier (argument_list "(iVar10,iVar16,iVar17 + -0x21)" ( identifier , identifier , (binary_expression "iVar17 + -0x21" identifier + number_literal) )))) ;) (expression_statement "iVar16 = (iVar17 * 0xff + 0x32) / 100;" (assignment_expression "iVar16 = (iVar17 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar17 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar17 * 0xff + 0x32)" ( (binary_expression "iVar17 * 0xff + 0x32" (binary_expression "iVar17 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) (expression_statement "iVar17 = (iVar4 * 0xff + 0x32) / 100;" (assignment_expression "iVar17 = (iVar4 * 0xff + 0x32) / 100" identifier = (binary_expression "(iVar4 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar4 * 0xff + 0x32)" ( (binary_expression "iVar4 * 0xff + 0x32" (binary_expression "iVar4 * 0xff" identifier * number_literal) + number_literal) )) / number_literal)) ;) }))) (expression_statement "(&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;" (assignment_expression "(&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16" (subscript_expression "(&uStack_448)[local_51c]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = (binary_expression "iVar12 * 0x10000 + iVar17 * 0x100 + iVar16" (binary_expression "iVar12 * 0x10000 + iVar17 * 0x100" (binary_expression "iVar12 * 0x10000" identifier * number_literal) + (binary_expression "iVar17 * 0x100" identifier * number_literal)) + identifier)) ;) }) (else_clause "else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" else (if_statement "if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" if (parenthesized_expression "(local_478._4_4_ == 2)" ( (binary_expression "local_478._4_4_ == 2" (field_expression "local_478._4_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" { (if_statement "if (100 < (int)local_470) {\n                local_470 = 100;\n              }" if (parenthesized_expression "(100 < (int)local_470)" ( (binary_expression "100 < (int)local_470" number_literal < (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                local_470 = 100;\n              }" { (expression_statement "local_470 = 100;" (assignment_expression "local_470 = 100" identifier = number_literal) ;) })) (if_statement "if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }" if (parenthesized_expression "(100 < (int)uStack_46c)" ( (binary_expression "100 < (int)uStack_46c" number_literal < (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uStack_46c = 100;\n              }" { (expression_statement "uStack_46c = 100;" (assignment_expression "uStack_46c = 100" identifier = number_literal) ;) })) (if_statement "if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }" if (parenthesized_expression "(100 < (int)local_468)" ( (binary_expression "100 < (int)local_468" number_literal < (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }" { (expression_statement "local_468 = CONCAT44(local_468._4_4_,100);" (assignment_expression "local_468 = CONCAT44(local_468._4_4_,100)" identifier = (call_expression "CONCAT44(local_468._4_4_,100)" identifier (argument_list "(local_468._4_4_,100)" ( (field_expression "local_468._4_4_" identifier . field_identifier) , number_literal )))) ;) })) (expression_statement "lVar6 = (long)(int)local_470 * 0xff + 0x32;" (assignment_expression "lVar6 = (long)(int)local_470 * 0xff + 0x32" identifier = (binary_expression "(long)(int)local_470 * 0xff + 0x32" (binary_expression "(long)(int)local_470 * 0xff" (cast_expression "(long)(int)local_470" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_470" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) + number_literal)) ;) (expression_statement "lVar20 = (long)(int)local_468 * 0xff + 0x32;" (assignment_expression "lVar20 = (long)(int)local_468 * 0xff + 0x32" identifier = (binary_expression "(long)(int)local_468 * 0xff + 0x32" (binary_expression "(long)(int)local_468 * 0xff" (cast_expression "(long)(int)local_468" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_468" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) + number_literal)) ;) (expression_statement "lVar14 = (long)(int)uStack_46c * 0xff + 0x32;" (assignment_expression "lVar14 = (long)(int)uStack_46c * 0xff + 0x32" identifier = (binary_expression "(long)(int)uStack_46c * 0xff + 0x32" (binary_expression "(long)(int)uStack_46c * 0xff" (cast_expression "(long)(int)uStack_46c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal) + number_literal)) ;) (expression_statement "(&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;" (assignment_expression "(&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (subscript_expression "(&uStack_448)[local_51c]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]) = (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f))" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar6 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar6 >> 0x3f)" ( (binary_expression "lVar6 >> 0x3f" identifier >> number_literal) )))) )) * number_literal) + (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar20)" identifier (argument_list "(lVar20)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar20 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar20 >> 0x3f)" ( (binary_expression "lVar20 >> 0x3f" identifier >> number_literal) )))) ))) + (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f))" ( (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6)" ( (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8)" identifier (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8)" ( (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" identifier (argument_list "(-0x5c28f5c28f5c28f5)" ( number_literal ))) * (call_expression "SEXT816(lVar14)" identifier (argument_list "(lVar14)" ( identifier )))) , number_literal ))) + identifier) >> number_literal) ))) - (cast_expression "(int)(lVar14 >> 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar14 >> 0x3f)" ( (binary_expression "lVar14 >> 0x3f" identifier >> number_literal) )))) )) * number_literal))) ;) })))) })) }) (else_clause "else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" else (if_statement "if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" if (parenthesized_expression "(bVar1 == 0x24)" ( (binary_expression "bVar1 == 0x24" identifier == number_literal) )) (compound_statement "{\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" { (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" else (compound_statement "{\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" { (if_statement "if (bVar1 != 0x2d) goto LAB_003c9c26;" if (parenthesized_expression "(bVar1 != 0x2d)" ( (binary_expression "bVar1 != 0x2d" identifier != number_literal) )) (goto_statement "goto LAB_003c9c26;" goto statement_identifier ;)) (expression_statement "local_4c8 = local_4c8 + 6;" (assignment_expression "local_4c8 = local_4c8 + 6" identifier = (binary_expression "local_4c8 + 6" identifier + number_literal)) ;) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;) })) (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier = (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" identifier (argument_list "(param_2 + 1,&local_478,&local_47c)" ( (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_478" & identifier) , (pointer_expression "&local_47c" & identifier) ))))) ;) (if_statement "if (local_47c < 1) goto LAB_003c9c9d;" if (parenthesized_expression "(local_47c < 1)" ( (binary_expression "local_47c < 1" identifier < number_literal) )) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;)) (if_statement "if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;" if (parenthesized_expression "(((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))" ( (binary_expression "((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1))" (parenthesized_expression "((int)local_478 < 1)" ( (binary_expression "(int)local_478 < 1" (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1))" ( (comma_expression "local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)" (assignment_expression "local_520 = (int)local_478" identifier = (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(long)(int)local_478 <= (long)(~uVar9 - 1)" (cast_expression "(long)(int)local_478" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_478" ( (type_descriptor "int" primitive_type) ) identifier)) <= (cast_expression "(long)(~uVar9 - 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(~uVar9 - 1)" ( (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) ))))) ))) )) (goto_statement "goto LAB_003c9c9d;" goto statement_identifier ;)) (labeled_statement "LAB_003ca670:\n      uVar5 = local_4a0 + 1U;" statement_identifier : (expression_statement "uVar5 = local_4a0 + 1U;" (assignment_expression "uVar5 = local_4a0 + 1U" identifier = (binary_expression "local_4a0 + 1U" identifier + number_literal)) ;)) (if_statement "if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }" if (parenthesized_expression "((int)(local_4a0 + 1U) <= (int)local_518)" ( (binary_expression "(int)(local_4a0 + 1U) <= (int)local_518" (cast_expression "(int)(local_4a0 + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_4a0 + 1U)" ( (binary_expression "local_4a0 + 1U" identifier + number_literal) ))) <= (cast_expression "(int)local_518" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar5 = local_518;\n      }" { (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" identifier = identifier) ;) })) (expression_statement "uVar21 = local_4bc + 1U;" (assignment_expression "uVar21 = local_4bc + 1U" identifier = (binary_expression "local_4bc + 1U" identifier + number_literal)) ;) (if_statement "if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }" if (parenthesized_expression "((int)(local_4bc + 1U) <= (int)local_514)" ( (binary_expression "(int)(local_4bc + 1U) <= (int)local_514" (cast_expression "(int)(local_4bc + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_4bc + 1U)" ( (binary_expression "local_4bc + 1U" identifier + number_literal) ))) <= (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar21 = local_514;\n      }" { (expression_statement "uVar21 = local_514;" (assignment_expression "uVar21 = local_514" identifier = identifier) ;) })) (if_statement "if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }" if (parenthesized_expression "(((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19))" ( (binary_expression "((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)" (parenthesized_expression "((int)uVar5 < (int)local_52c)" ( (binary_expression "(int)uVar5 < (int)local_52c" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)uVar21 < (int)uVar19)" ( (binary_expression "(int)uVar21 < (int)uVar19" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }" { (expression_statement "sVar11 = (size_t)(int)uVar5;" (assignment_expression "sVar11 = (size_t)(int)uVar5" identifier = (cast_expression "(size_t)(int)uVar5" ( (type_descriptor "size_t" primitive_type) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);" (assignment_expression "iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8)" identifier = (call_expression "SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8)" identifier (argument_list "(param_1,sVar11,(long)(int)uVar21,param_8)" ( identifier , identifier , (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21)" identifier = (cast_expression "(void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar11,(long)(int)uVar21)" identifier (argument_list "(sVar11,(long)(int)uVar21)" ( identifier , (cast_expression "(long)(int)uVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" { (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c9a8e;" goto statement_identifier ;) })) (if_statement "if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);" do (compound_statement "{\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          }" { (expression_statement "memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);" (call_expression "memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11)" identifier (argument_list "((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11)" ( (cast_expression "(void *)((long)iVar3 + (long)pvVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar3 + (long)pvVar7)" ( (binary_expression "(long)iVar3 + (long)pvVar7" (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , (cast_expression "(void *)((long)iVar17 + (long)local_550)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar17 + (long)local_550)" ( (binary_expression "(long)iVar17 + (long)local_550" (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_550" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) , identifier ))) ;) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar17 + local_52c;" (assignment_expression "iVar17 = iVar17 + local_52c" identifier = (binary_expression "iVar17 + local_52c" identifier + identifier)) ;) (expression_statement "iVar3 = iVar3 + uVar5;" (assignment_expression "iVar3 = iVar3 + uVar5" identifier = (binary_expression "iVar3 + uVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar21 != uVar19)" ( (binary_expression "uVar21 != uVar19" identifier != identifier) )) ;) })) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" identifier = identifier) ;) (expression_statement "local_52c = uVar5;" (assignment_expression "local_52c = uVar5" identifier = identifier) ;) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" identifier = identifier) ;) })) (expression_statement "*param_3 = local_550;" (assignment_expression "*param_3 = local_550" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = (long)(int)local_52c;" (assignment_expression "*param_4 = (long)(int)local_52c" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)(int)local_52c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_5 = (long)(int)uVar19;" (assignment_expression "*param_5 = (long)(int)uVar19" (pointer_expression "*param_5" * identifier) = (cast_expression "(long)(int)uVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_7 = (long)(local_4c4 + 1);" (assignment_expression "*param_7 = (long)(local_4c4 + 1)" (pointer_expression "*param_7" * identifier) = (cast_expression "(long)(local_4c4 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_4c4 + 1)" ( (binary_expression "local_4c4 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);" (assignment_expression "lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4)" identifier = (call_expression "AcquireQuantumMemory((long)(local_4c4 + 1),4)" identifier (argument_list "((long)(local_4c4 + 1),4)" ( (cast_expression "(long)(local_4c4 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_4c4 + 1)" ( (binary_expression "local_4c4 + 1" identifier + number_literal) ))) , number_literal )))) ;) (expression_statement "*param_6 = lVar6;" (assignment_expression "*param_6 = lVar6" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }" { (expression_statement "local_47c = 0;" (assignment_expression "local_47c = 0" identifier = number_literal) ;) (if_statement "if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" if (parenthesized_expression "(*param_7 < 1)" ( (binary_expression "*param_7 < 1" (pointer_expression "*param_7" * identifier) < number_literal) )) (compound_statement "{\n          iVar3 = 1;\n        }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" else (compound_statement "{\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" { (do_statement "do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);" do (compound_statement "{\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          }" { (expression_statement "*(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);" (assignment_expression "*(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" (pointer_expression "*(char *)(*param_6 + (long)(local_47c * 4))" * (cast_expression "(char *)(*param_6 + (long)(local_47c * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + (long)(local_47c * 4))" ( (binary_expression "*param_6 + (long)(local_47c * 4)" (pointer_expression "*param_6" * identifier) + (cast_expression "(long)(local_47c * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c * 4)" ( (binary_expression "local_47c * 4" identifier * number_literal) )))) )))) = (cast_expression "(char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" * (cast_expression "(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_448 + (long)local_47c * 4 + 2)" ( (binary_expression "(long)&uStack_448 + (long)local_47c * 4 + 2" (binary_expression "(long)&uStack_448 + (long)local_47c * 4" (cast_expression "(long)&uStack_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_448" & identifier)) + (binary_expression "(long)local_47c * 4" (cast_expression "(long)local_47c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))))) ;) (expression_statement "*(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);" (assignment_expression "*(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8)" (pointer_expression "*(char *)(*param_6 + 1 + (long)(local_47c * 4))" * (cast_expression "(char *)(*param_6 + 1 + (long)(local_47c * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 1 + (long)(local_47c * 4))" ( (binary_expression "*param_6 + 1 + (long)(local_47c * 4)" (binary_expression "*param_6 + 1" (pointer_expression "*param_6" * identifier) + number_literal) + (cast_expression "(long)(local_47c * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c * 4)" ( (binary_expression "local_47c * 4" identifier * number_literal) )))) )))) = (cast_expression "(char)((uint)(&uStack_448)[local_47c] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(&uStack_448)[local_47c] >> 8)" ( (binary_expression "(uint)(&uStack_448)[local_47c] >> 8" (subscript_expression "(uint)(&uStack_448)[local_47c]" (call_expression "(uint)(&uStack_448)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) ))) [ identifier ]) >> number_literal) )))) ;) (expression_statement "*(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];" (assignment_expression "*(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c]" (pointer_expression "*(char *)(*param_6 + 2 + (long)(local_47c * 4))" * (cast_expression "(char *)(*param_6 + 2 + (long)(local_47c * 4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 2 + (long)(local_47c * 4))" ( (binary_expression "*param_6 + 2 + (long)(local_47c * 4)" (binary_expression "*param_6 + 2" (pointer_expression "*param_6" * identifier) + number_literal) + (cast_expression "(long)(local_47c * 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c * 4)" ( (binary_expression "local_47c * 4" identifier * number_literal) )))) )))) = (cast_expression "(char)(&uStack_448)[local_47c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&uStack_448)[local_47c]" (parenthesized_expression "(&uStack_448)" ( (pointer_expression "&uStack_448" & identifier) )) [ identifier ]))) ;) (expression_statement "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;" (assignment_expression "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff" (pointer_expression "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2))" * (cast_expression "(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 3 + (long)(local_47c << 2))" ( (binary_expression "*param_6 + 3 + (long)(local_47c << 2)" (binary_expression "*param_6 + 3" (pointer_expression "*param_6" * identifier) + number_literal) + (cast_expression "(long)(local_47c << 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_47c << 2)" ( (binary_expression "local_47c << 2" identifier << number_literal) )))) )))) = number_literal) ;) (expression_statement "local_47c = local_47c + 1;" (assignment_expression "local_47c = local_47c + 1" identifier = (binary_expression "local_47c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long)local_47c < *param_7)" ( (binary_expression "(long)local_47c < *param_7" (cast_expression "(long)local_47c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (pointer_expression "*param_7" * identifier)) )) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) })) })) })) (labeled_statement "LAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression LIT < IDENT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression IDENT + LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (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)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) == LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT * LIT)) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression LIT - IDENT) != IDENT)) )))) )) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) ))) <= (binary_expression IDENT + IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) + IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) ))) <= IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) (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 (binary_expression IDENT + LIT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ))) )) (compound_statement { (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 LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT) )) / LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * LIT) ))) / LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT) )) / LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) * (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( (binary_expression (call_expression IDENT (argument_list ( LIT ))) * (call_expression IDENT (argument_list ( IDENT )))) , LIT ))) + IDENT) >> LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( (binary_expression (call_expression IDENT (argument_list ( LIT ))) * (call_expression IDENT (argument_list ( IDENT )))) , LIT ))) + IDENT) >> LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) )))) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + LIT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + LIT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + LIT) )) / LIT)) ;) }))) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (binary_expression (binary_expression (binary_expression IDENT * LIT) + (binary_expression IDENT * LIT)) + IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( (binary_expression (call_expression IDENT (argument_list ( LIT ))) * (call_expression IDENT (argument_list ( IDENT )))) , LIT ))) + IDENT) >> LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) )) * LIT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( (binary_expression (call_expression IDENT (argument_list ( LIT ))) * (call_expression IDENT (argument_list ( IDENT )))) , LIT ))) + IDENT) >> LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ))) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( (binary_expression (call_expression IDENT (argument_list ( LIT ))) * (call_expression IDENT (argument_list ( IDENT )))) , LIT ))) + IDENT) >> LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) )) * LIT))) ;) })))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) <= (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) ))))) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (pointer_expression & IDENT) ))) [ IDENT ]) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (pointer_expression * IDENT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "sixel_decode(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)" (identifier "sixel_decode") (parameter_list "(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,\n                long *param_6,long *param_7,undefined8 param_8)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "long *param_5" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long *param_6" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "long *param_7" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "undefined8 param_8" (type_identifier "undefined8") (identifier "param_8")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  long lVar6;\n  void *pvVar7;\n  ulong uVar8;\n  ulong uVar9;\n  int iVar10;\n  size_t sVar11;\n  int iVar12;\n  byte *pbVar13;\n  long lVar14;\n  ulong uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  long lVar20;\n  uint uVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  void *local_550;\n  uint local_52c;\n  int local_520;\n  int local_51c;\n  uint local_518;\n  uint local_514;\n  int local_4c8;\n  int local_4c4;\n  int local_4bc;\n  int local_4a0;\n  int local_47c;\n  undefined8 local_478;\n  uint local_470;\n  uint uStack_46c;\n  undefined8 local_468;\n  undefined8 local_460;\n  undefined8 local_458;\n  undefined4 uStack_448;\n  int aiStack_a8 [26];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_478 = 0;\n  local_470 = 0;\n  uStack_46c = 0;\n  local_468 = 0;\n  local_460 = 0;\n  local_458 = 0;\n  uVar9 = 0xffffffffffffffff;\n  pbVar13 = param_2;\n  do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);\n  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);\n  if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }\nLAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "void *pvVar7;" (primitive_type "void") (pointer_declarator "*pvVar7" (* "*") (identifier "pvVar7")) (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "size_t sVar11;" (primitive_type "size_t") (identifier "sVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "ulong uVar15;" (type_identifier "ulong") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "long lVar20;" (sized_type_specifier "long" (long "long")) (identifier "lVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "void *local_550;" (primitive_type "void") (pointer_declarator "*local_550" (* "*") (identifier "local_550")) (; ";")) (declaration "uint local_52c;" (type_identifier "uint") (identifier "local_52c") (; ";")) (declaration "int local_520;" (primitive_type "int") (identifier "local_520") (; ";")) (declaration "int local_51c;" (primitive_type "int") (identifier "local_51c") (; ";")) (declaration "uint local_518;" (type_identifier "uint") (identifier "local_518") (; ";")) (declaration "uint local_514;" (type_identifier "uint") (identifier "local_514") (; ";")) (declaration "int local_4c8;" (primitive_type "int") (identifier "local_4c8") (; ";")) (declaration "int local_4c4;" (primitive_type "int") (identifier "local_4c4") (; ";")) (declaration "int local_4bc;" (primitive_type "int") (identifier "local_4bc") (; ";")) (declaration "int local_4a0;" (primitive_type "int") (identifier "local_4a0") (; ";")) (declaration "int local_47c;" (primitive_type "int") (identifier "local_47c") (; ";")) (declaration "undefined8 local_478;" (type_identifier "undefined8") (identifier "local_478") (; ";")) (declaration "uint local_470;" (type_identifier "uint") (identifier "local_470") (; ";")) (declaration "uint uStack_46c;" (type_identifier "uint") (identifier "uStack_46c") (; ";")) (declaration "undefined8 local_468;" (type_identifier "undefined8") (identifier "local_468") (; ";")) (declaration "undefined8 local_460;" (type_identifier "undefined8") (identifier "local_460") (; ";")) (declaration "undefined8 local_458;" (type_identifier "undefined8") (identifier "local_458") (; ";")) (declaration "undefined4 uStack_448;" (type_identifier "undefined4") (identifier "uStack_448") (; ";")) (declaration "int aiStack_a8 [26];" (primitive_type "int") (array_declarator "aiStack_a8 [26]" (identifier "aiStack_a8") ([ "[") (number_literal "26") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_478 = 0;" (assignment_expression "local_478 = 0" (identifier "local_478") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_470 = 0;" (assignment_expression "local_470 = 0" (identifier "local_470") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_46c = 0;" (assignment_expression "uStack_46c = 0" (identifier "uStack_46c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_468 = 0;" (assignment_expression "local_468 = 0" (identifier "local_468") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_460 = 0;" (assignment_expression "local_460 = 0" (identifier "local_460") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_458 = 0;" (assignment_expression "local_458 = 0" (identifier "local_458") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pbVar13 = param_2;" (assignment_expression "pbVar13 = param_2" (identifier "pbVar13") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  } while (bVar1 != 0);" (do "do") (compound_statement "{\n    if (uVar9 == 0) break;\n    uVar9 = uVar9 - 1;\n    bVar1 = *pbVar13;\n    pbVar13 = pbVar13 + 1;\n  }" ({ "{") (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar13;" (assignment_expression "bVar1 = *pbVar13" (identifier "bVar1") (= "=") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);" (assignment_expression "iVar3 = SetImageExtent(param_1,0x800,0x800,param_8)" (identifier "iVar3") (= "=") (call_expression "SetImageExtent(param_1,0x800,0x800,param_8)" (identifier "SetImageExtent") (argument_list "(param_1,0x800,0x800,param_8)" (( "(") (identifier "param_1") (, ",") (number_literal "0x800") (, ",") (number_literal "0x800") (, ",") (identifier "param_8") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);\n    iVar3 = 0;\n    if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "local_550 = (void *)AcquireQuantumMemory(0x800,0x800);" (assignment_expression "local_550 = (void *)AcquireQuantumMemory(0x800,0x800)" (identifier "local_550") (= "=") (cast_expression "(void *)AcquireQuantumMemory(0x800,0x800)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(0x800,0x800)" (identifier "AcquireQuantumMemory") (argument_list "(0x800,0x800)" (( "(") (number_literal "0x800") (, ",") (number_literal "0x800") () ")"))))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_550 != (void *)0x0) {\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_550 != (void *)0x0)" (( "(") (binary_expression "local_550 != (void *)0x0" (identifier "local_550") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      lVar6 = 0;\n      do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);\n      iVar17 = 0;\n      iVar3 = 0x34;\n      do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);\n      iVar3 = 0;\n      iVar17 = 0xe8;\n      do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);\n      local_47c = 0x100;\n      memset(local_550,0,0x400000);\n      local_52c = 0x800;\n      local_4c4 = 2;\n      local_51c = 0;\n      local_520 = 1;\n      local_514 = 0;\n      local_518 = 0;\n      local_4bc = 0;\n      local_4a0 = 0;\n      local_4c8 = 0;\n      iVar3 = 0;\n      uVar19 = 0x800;\nLAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }\n      if (bVar1 == 0x90) goto LAB_003c9c82;\n      if (bVar1 == 0x9c) goto LAB_003ca670;\n      if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }\n      if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }\n      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n      if (local_47c < 1) goto LAB_003c9c9d;\n      if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;\nLAB_003ca670:\n      uVar5 = local_4a0 + 1U;\n      if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }\n      uVar21 = local_4bc + 1U;\n      if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }\n      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }\n      *param_3 = local_550;\n      *param_4 = (long)(int)local_52c;\n      *param_5 = (long)(int)uVar19;\n      *param_7 = (long)(local_4c4 + 1);\n      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);\n      *param_6 = lVar6;\n      iVar3 = 0;\n      if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }\n    }" ({ "{") (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" (identifier "lVar6") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != 0x40);" (do "do") (compound_statement "{\n        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);\n        lVar6 = lVar6 + 4;\n      }" ({ "{") (expression_statement "*(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);" (assignment_expression "*(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6)" (pointer_expression "*(undefined4 *)((long)&uStack_448 + lVar6)" (* "*") (cast_expression "(undefined4 *)((long)&uStack_448 + lVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&uStack_448 + lVar6)" (( "(") (binary_expression "(long)&uStack_448 + lVar6" (cast_expression "(long)&uStack_448" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448"))) (+ "+") (identifier "lVar6")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)&DAT_0047bf80 + lVar6)" (* "*") (cast_expression "(undefined4 *)((long)&DAT_0047bf80 + lVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&DAT_0047bf80 + lVar6)" (( "(") (binary_expression "(long)&DAT_0047bf80 + lVar6" (cast_expression "(long)&DAT_0047bf80" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&DAT_0047bf80" (& "&") (identifier "DAT_0047bf80"))) (+ "+") (identifier "lVar6")) () ")"))))) (; ";")) (expression_statement "lVar6 = lVar6 + 4;" (assignment_expression "lVar6 = lVar6 + 4" (identifier "lVar6") (= "=") (binary_expression "lVar6 + 4" (identifier "lVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar6 != 0x40)" (( "(") (binary_expression "lVar6 != 0x40" (identifier "lVar6") (!= "!=") (number_literal "0x40")) () ")")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0x34;" (assignment_expression "iVar3 = 0x34" (identifier "iVar3") (= "=") (number_literal "0x34")) (; ";")) (do_statement "do {\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      } while (iVar17 != 0x1320000);" (do "do") (compound_statement "{\n        iVar16 = iVar3 + -0x24;\n        iVar12 = iVar17;\n        do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);\n        iVar3 = iVar3 + 0x24;\n        iVar17 = iVar17 + 0x330000;\n      }" ({ "{") (expression_statement "iVar16 = iVar3 + -0x24;" (assignment_expression "iVar16 = iVar3 + -0x24" (identifier "iVar16") (= "=") (binary_expression "iVar3 + -0x24" (identifier "iVar3") (+ "+") (number_literal "-0x24"))) (; ";")) (expression_statement "iVar12 = iVar17;" (assignment_expression "iVar12 = iVar17" (identifier "iVar12") (= "=") (identifier "iVar17")) (; ";")) (do_statement "do {\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        } while (iVar16 != iVar3);" (do "do") (compound_statement "{\n          iVar4 = iVar12;\n          iVar10 = iVar16;\n          do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);\n          iVar16 = iVar16 + 6;\n          iVar12 = iVar12 + 0x3300;\n        }" ({ "{") (expression_statement "iVar4 = iVar12;" (assignment_expression "iVar4 = iVar12" (identifier "iVar4") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" (identifier "iVar10") (= "=") (identifier "iVar16")) (; ";")) (do_statement "do {\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          } while (iVar4 != iVar12 + 0x132);" (do "do") (compound_statement "{\n            (&uStack_448)[iVar10] = iVar4;\n            iVar10 = iVar10 + 1;\n            iVar4 = iVar4 + 0x33;\n          }" ({ "{") (expression_statement "(&uStack_448)[iVar10] = iVar4;" (assignment_expression "(&uStack_448)[iVar10] = iVar4" (subscript_expression "(&uStack_448)[iVar10]" (parenthesized_expression "(&uStack_448)" (( "(") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448")) () ")")) ([ "[") (identifier "iVar10") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = iVar4 + 0x33;" (assignment_expression "iVar4 = iVar4 + 0x33" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x33" (identifier "iVar4") (+ "+") (number_literal "0x33"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != iVar12 + 0x132)" (( "(") (binary_expression "iVar4 != iVar12 + 0x132" (identifier "iVar4") (!= "!=") (binary_expression "iVar12 + 0x132" (identifier "iVar12") (+ "+") (number_literal "0x132"))) () ")")) (; ";")) (expression_statement "iVar16 = iVar16 + 6;" (assignment_expression "iVar16 = iVar16 + 6" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 6" (identifier "iVar16") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "iVar12 = iVar12 + 0x3300;" (assignment_expression "iVar12 = iVar12 + 0x3300" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 0x3300" (identifier "iVar12") (+ "+") (number_literal "0x3300"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 != iVar3)" (( "(") (binary_expression "iVar16 != iVar3" (identifier "iVar16") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (expression_statement "iVar3 = iVar3 + 0x24;" (assignment_expression "iVar3 = iVar3 + 0x24" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "iVar17 = iVar17 + 0x330000;" (assignment_expression "iVar17 = iVar17 + 0x330000" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 0x330000" (identifier "iVar17") (+ "+") (number_literal "0x330000"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != 0x1320000)" (( "(") (binary_expression "iVar17 != 0x1320000" (identifier "iVar17") (!= "!=") (number_literal "0x1320000")) () ")")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = 0xe8;" (assignment_expression "iVar17 = 0xe8" (identifier "iVar17") (= "=") (number_literal "0xe8")) (; ";")) (do_statement "do {\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      } while (iVar3 != 0x1090908);" (do "do") (compound_statement "{\n        (&uStack_448)[iVar17] = iVar3;\n        iVar17 = iVar17 + 1;\n        iVar3 = iVar3 + 0xb0b0b;\n      }" ({ "{") (expression_statement "(&uStack_448)[iVar17] = iVar3;" (assignment_expression "(&uStack_448)[iVar17] = iVar3" (subscript_expression "(&uStack_448)[iVar17]" (parenthesized_expression "(&uStack_448)" (( "(") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448")) () ")")) ([ "[") (identifier "iVar17") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = iVar3 + 0xb0b0b;" (assignment_expression "iVar3 = iVar3 + 0xb0b0b" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0xb0b0b" (identifier "iVar3") (+ "+") (number_literal "0xb0b0b"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0x1090908)" (( "(") (binary_expression "iVar3 != 0x1090908" (identifier "iVar3") (!= "!=") (number_literal "0x1090908")) () ")")) (; ";")) (expression_statement "local_47c = 0x100;" (assignment_expression "local_47c = 0x100" (identifier "local_47c") (= "=") (number_literal "0x100")) (; ";")) (expression_statement "memset(local_550,0,0x400000);" (call_expression "memset(local_550,0,0x400000)" (identifier "memset") (argument_list "(local_550,0,0x400000)" (( "(") (identifier "local_550") (, ",") (number_literal "0") (, ",") (number_literal "0x400000") () ")"))) (; ";")) (expression_statement "local_52c = 0x800;" (assignment_expression "local_52c = 0x800" (identifier "local_52c") (= "=") (number_literal "0x800")) (; ";")) (expression_statement "local_4c4 = 2;" (assignment_expression "local_4c4 = 2" (identifier "local_4c4") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" (identifier "local_51c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" (identifier "local_514") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_518 = 0;" (assignment_expression "local_518 = 0" (identifier "local_518") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4bc = 0;" (assignment_expression "local_4bc = 0" (identifier "local_4bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" (identifier "local_4a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c8 = 0;" (assignment_expression "local_4c8 = 0" (identifier "local_4c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0x800;" (assignment_expression "uVar19 = 0x800" (identifier "uVar19") (= "=") (number_literal "0x800")) (; ";")) (labeled_statement "LAB_003c9c9d:\n      while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" (statement_identifier "LAB_003c9c9d") (: ":") (while_statement "while( true ) {\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        bVar1 = *param_2;\n        if (bVar1 == 0) goto LAB_003ca670;\n        if (bVar1 != 0x1b) break;\n        if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }\n      }" ({ "{") (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" (identifier "bVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (bVar1 == 0) goto LAB_003ca670;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003ca670;" (goto "goto") (statement_identifier "LAB_003ca670") (; ";"))) (if_statement "if (bVar1 != 0x1b) break;" (if "if") (parenthesized_expression "(bVar1 != 0x1b)" (( "(") (binary_expression "bVar1 != 0x1b" (identifier "bVar1") (!= "!=") (number_literal "0x1b")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (param_2[1] == 0x50) {\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }\n        else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(param_2[1] == 0x50)" (( "(") (binary_expression "param_2[1] == 0x50" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x50")) () ")")) (compound_statement "{\n          param_2 = param_2 + 1;\nLAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }\n        }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_003c9c82:\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (statement_identifier "LAB_003c9c82") (: ":") (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "param_2") (= "=") (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "FUN_003c96bf") (argument_list "(param_2 + 1,&local_478,&local_47c)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_478" (& "&") (identifier "local_478")) (, ",") (pointer_expression "&local_47c" (& "&") (identifier "local_47c")) () ")"))))) (; ";"))) (if_statement "if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {\n            local_470 = 10;\n          }" (if "if") (parenthesized_expression "(((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0))" (( "(") (binary_expression "((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)" (parenthesized_expression "((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c))" (( "(") (binary_expression "(*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)" (parenthesized_expression "(*param_2 == 0x71)" (( "(") (binary_expression "*param_2 == 0x71" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "0x71")) () ")")) (&& "&&") (parenthesized_expression "(param_2 = param_2 + 1, 2 < local_47c)" (( "(") (comma_expression "param_2 = param_2 + 1, 2 < local_47c" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (, ",") (binary_expression "2 < local_47c" (number_literal "2") (< "<") (identifier "local_47c"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_470 == 0)" (( "(") (binary_expression "local_470 == 0" (identifier "local_470") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            local_470 = 10;\n          }" ({ "{") (expression_statement "local_470 = 10;" (assignment_expression "local_470 = 10" (identifier "local_470") (= "=") (number_literal "10")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" (else "else") (compound_statement "{\n          if (param_2[1] == 0x5c) goto LAB_003ca670;\nLAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }\n        }" ({ "{") (if_statement "if (param_2[1] == 0x5c) goto LAB_003ca670;" (if "if") (parenthesized_expression "(param_2[1] == 0x5c)" (( "(") (binary_expression "param_2[1] == 0x5c" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5c")) () ")")) (goto_statement "goto LAB_003ca670;" (goto "goto") (statement_identifier "LAB_003ca670") (; ";"))) (labeled_statement "LAB_003c9c26:\n          if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }" (statement_identifier "LAB_003c9c26") (: ":") (if_statement "if ((byte)(bVar1 - 0x3f) < 0x41) {\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }\n          else {\n            param_2 = param_2 + 1;\n          }" (if "if") (parenthesized_expression "((byte)(bVar1 - 0x3f) < 0x41)" (( "(") (binary_expression "(byte)(bVar1 - 0x3f) < 0x41" (call_expression "(byte)(bVar1 - 0x3f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 - 0x3f)" (( "(") (binary_expression "bVar1 - 0x3f" (identifier "bVar1") (- "-") (number_literal "0x3f")) () ")"))) (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n            iVar17 = iVar3 + local_520;\n            uVar5 = uVar19;\n            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }\n            if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }\n            pbVar13 = param_2 + 1;\n            uVar21 = *param_2 - 0x3f;\n            param_2 = pbVar13;\n            uVar19 = uVar5;\n            if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n          }" ({ "{") (expression_statement "iVar17 = iVar3 + local_520;" (assignment_expression "iVar17 = iVar3 + local_520" (identifier "iVar17") (= "=") (binary_expression "iVar3 + local_520" (identifier "iVar3") (+ "+") (identifier "local_520"))) (; ";")) (expression_statement "uVar5 = uVar19;" (assignment_expression "uVar5 = uVar19" (identifier "uVar5") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }" (if "if") (parenthesized_expression "(((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6))" (( "(") (binary_expression "((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)" (parenthesized_expression "((int)local_52c < iVar17)" (( "(") (binary_expression "(int)local_52c < iVar17" (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c")) (< "<") (identifier "iVar17")) () ")")) (|| "||") (parenthesized_expression "((int)uVar19 < local_4c8 + 6)" (( "(") (binary_expression "(int)uVar19 < local_4c8 + 6" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (< "<") (binary_expression "local_4c8 + 6" (identifier "local_4c8") (+ "+") (number_literal "6"))) () ")"))) () ")")) (compound_statement "{\n              uVar21 = local_52c;\n              do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);\n              lVar6 = (long)(int)uVar5;\n              lVar20 = (long)(int)uVar21;\n              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n              if (iVar12 == 0) goto LAB_003ca670;\n              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n              if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }\n              memset(pvVar7,0,lVar6 * lVar20);\n              if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }\n              RelinquishMagickMemory(local_550);\n              local_550 = pvVar7;\n              local_52c = uVar21;\n            }" ({ "{") (expression_statement "uVar21 = local_52c;" (assignment_expression "uVar21 = local_52c" (identifier "uVar21") (= "=") (identifier "local_52c")) (; ";")) (do_statement "do {\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              } while ((int)uVar5 < local_4c8 + 6);" (do "do") (compound_statement "{\n                do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);\n              }" ({ "{") (do_statement "do {\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                } while ((int)uVar21 < iVar17);" (do "do") (compound_statement "{\n                  uVar5 = uVar5 * 2;\n                  uVar21 = uVar21 * 2;\n                }" ({ "{") (expression_statement "uVar5 = uVar5 * 2;" (assignment_expression "uVar5 = uVar5 * 2" (identifier "uVar5") (= "=") (binary_expression "uVar5 * 2" (identifier "uVar5") (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar21 = uVar21 * 2;" (assignment_expression "uVar21 = uVar21 * 2" (identifier "uVar21") (= "=") (binary_expression "uVar21 * 2" (identifier "uVar21") (* "*") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar21 < iVar17)" (( "(") (binary_expression "(int)uVar21 < iVar17" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (identifier "iVar17")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar5 < local_4c8 + 6)" (( "(") (binary_expression "(int)uVar5 < local_4c8 + 6" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (binary_expression "local_4c8 + 6" (identifier "local_4c8") (+ "+") (number_literal "6"))) () ")")) (; ";")) (expression_statement "lVar6 = (long)(int)uVar5;" (assignment_expression "lVar6 = (long)(int)uVar5" (identifier "lVar6") (= "=") (cast_expression "(long)(int)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")))) (; ";")) (expression_statement "lVar20 = (long)(int)uVar21;" (assignment_expression "lVar20 = (long)(int)uVar21" (identifier "lVar20") (= "=") (cast_expression "(long)(int)uVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")))) (; ";")) (expression_statement "iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);" (assignment_expression "iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8)" (identifier "iVar12") (= "=") (call_expression "SetImageExtent(param_1,lVar20,lVar6,param_8)" (identifier "SetImageExtent") (argument_list "(param_1,lVar20,lVar6,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "lVar20") (, ",") (identifier "lVar6") (, ",") (identifier "param_8") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) goto LAB_003ca670;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003ca670;" (goto "goto") (statement_identifier "LAB_003ca670") (; ";"))) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6)" (identifier "pvVar7") (= "=") (cast_expression "(void *)AcquireQuantumMemory(lVar20,lVar6)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(lVar20,lVar6)" (identifier "AcquireQuantumMemory") (argument_list "(lVar20,lVar6)" (( "(") (identifier "lVar20") (, ",") (identifier "lVar6") () ")"))))) (; ";")) (if_statement "if (pvVar7 == (void *)0x0) {\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }" (if "if") (parenthesized_expression "(pvVar7 == (void *)0x0)" (( "(") (binary_expression "pvVar7 == (void *)0x0" (identifier "pvVar7") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                RelinquishMagickMemory(local_550);\n                iVar3 = 0;\n                goto LAB_003c9a8e;\n              }" ({ "{") (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c9a8e;" (goto "goto") (statement_identifier "LAB_003c9a8e") (; ";")) (} "}"))) (expression_statement "memset(pvVar7,0,lVar6 * lVar20);" (call_expression "memset(pvVar7,0,lVar6 * lVar20)" (identifier "memset") (argument_list "(pvVar7,0,lVar6 * lVar20)" (( "(") (identifier "pvVar7") (, ",") (number_literal "0") (, ",") (binary_expression "lVar6 * lVar20" (identifier "lVar6") (* "*") (identifier "lVar20")) () ")"))) (; ";")) (if_statement "if (0 < (int)uVar19) {\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }" (if "if") (parenthesized_expression "(0 < (int)uVar19)" (( "(") (binary_expression "0 < (int)uVar19" (number_literal "0") (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n                iVar16 = 0;\n                iVar12 = 0;\n                uVar18 = 0;\n                do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);\n              }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                } while (uVar19 != uVar18);" (do "do") (compound_statement "{\n                  memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);\n                  uVar18 = uVar18 + 1;\n                  iVar12 = iVar12 + local_52c;\n                  iVar16 = iVar16 + uVar21;\n                }" ({ "{") (expression_statement "memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);" (call_expression "memcpy((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c)" (identifier "memcpy") (argument_list "((void *)((long)iVar16 + (long)pvVar7),\n                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c)" (( "(") (cast_expression "(void *)((long)iVar16 + (long)pvVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar16 + (long)pvVar7)" (( "(") (binary_expression "(long)iVar16 + (long)pvVar7" (cast_expression "(long)iVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar16")) (+ "+") (cast_expression "(long)pvVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar7"))) () ")"))) (, ",") (cast_expression "(void *)((long)iVar12 + (long)local_550)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar12 + (long)local_550)" (( "(") (binary_expression "(long)iVar12 + (long)local_550" (cast_expression "(long)iVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar12")) (+ "+") (cast_expression "(long)local_550" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_550"))) () ")"))) (, ",") (cast_expression "(long)(int)local_52c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c"))) () ")"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = iVar12 + local_52c;" (assignment_expression "iVar12 = iVar12 + local_52c" (identifier "iVar12") (= "=") (binary_expression "iVar12 + local_52c" (identifier "iVar12") (+ "+") (identifier "local_52c"))) (; ";")) (expression_statement "iVar16 = iVar16 + uVar21;" (assignment_expression "iVar16 = iVar16 + uVar21" (identifier "iVar16") (= "=") (binary_expression "iVar16 + uVar21" (identifier "iVar16") (+ "+") (identifier "uVar21"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar19 != uVar18)" (( "(") (binary_expression "uVar19 != uVar18" (identifier "uVar19") (!= "!=") (identifier "uVar18")) () ")")) (; ";")) (} "}"))) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" (identifier "local_550") (= "=") (identifier "pvVar7")) (; ";")) (expression_statement "local_52c = uVar21;" (assignment_expression "local_52c = uVar21" (identifier "local_52c") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (if_statement "if (local_4c4 < local_51c) {\n              local_4c4 = local_51c;\n            }" (if "if") (parenthesized_expression "(local_4c4 < local_51c)" (( "(") (binary_expression "local_4c4 < local_51c" (identifier "local_4c4") (< "<") (identifier "local_51c")) () ")")) (compound_statement "{\n              local_4c4 = local_51c;\n            }" ({ "{") (expression_statement "local_4c4 = local_51c;" (assignment_expression "local_4c4 = local_51c" (identifier "local_4c4") (= "=") (identifier "local_51c")) (; ";")) (} "}"))) (expression_statement "pbVar13 = param_2 + 1;" (assignment_expression "pbVar13 = param_2 + 1" (identifier "pbVar13") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = *param_2 - 0x3f;" (assignment_expression "uVar21 = *param_2 - 0x3f" (identifier "uVar21") (= "=") (binary_expression "*param_2 - 0x3f" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (- "-") (number_literal "0x3f"))) (; ";")) (expression_statement "param_2 = pbVar13;" (assignment_expression "param_2 = pbVar13" (identifier "param_2") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "uVar19 = uVar5;" (assignment_expression "uVar19 = uVar5" (identifier "uVar19") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (uVar21 == 0) {\n              local_520 = 1;\n              iVar3 = iVar17;\n            }\n            else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" ({ "{") (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = iVar17;" (assignment_expression "iVar3 = iVar17" (identifier "iVar3") (= "=") (identifier "iVar17")) (; ";")) (} "}")) (else_clause "else if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" (else "else") (if_statement "if (local_520 < 2) {\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }\n            else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" (if "if") (parenthesized_expression "(local_520 < 2)" (( "(") (binary_expression "local_520 < 2" (identifier "local_520") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;\n              lVar6 = 0;\n              uVar5 = 1;\n              do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);\n              local_520 = 1;\n              iVar3 = iVar3 + 1;\n            }" ({ "{") (expression_statement "uVar15 = (long)(int)uVar5 * (long)(int)local_52c;" (assignment_expression "uVar15 = (long)(int)uVar5 * (long)(int)local_52c" (identifier "uVar15") (= "=") (binary_expression "(long)(int)uVar5 * (long)(int)local_52c" (cast_expression "(long)(int)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) (* "*") (cast_expression "(long)(int)local_52c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c"))))) (; ";")) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" (identifier "lVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              } while (lVar6 != 6);" (do "do") (compound_statement "{\n                if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }\n                uVar5 = uVar5 * 2;\n                lVar6 = lVar6 + 1;\n              }" ({ "{") (if_statement "if ((uVar21 & uVar5) != 0) {\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }" (if "if") (parenthesized_expression "((uVar21 & uVar5) != 0)" (( "(") (binary_expression "(uVar21 & uVar5) != 0" (parenthesized_expression "(uVar21 & uVar5)" (( "(") (binary_expression "uVar21 & uVar5" (identifier "uVar21") (& "&") (identifier "uVar5")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar17 = local_4c8 + (int)lVar6;\n                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;\n                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }\n                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;\n                  if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }\n                  if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }\n                }" ({ "{") (expression_statement "iVar17 = local_4c8 + (int)lVar6;" (assignment_expression "iVar17 = local_4c8 + (int)lVar6" (identifier "iVar17") (= "=") (binary_expression "local_4c8 + (int)lVar6" (identifier "local_4c8") (+ "+") (cast_expression "(int)lVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar6")))) (; ";")) (expression_statement "uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;" (assignment_expression "uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3" (identifier "uVar8") (= "=") (binary_expression "(long)iVar17 * (long)(int)local_52c + (long)iVar3" (binary_expression "(long)iVar17 * (long)(int)local_52c" (cast_expression "(long)iVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar17")) (* "*") (cast_expression "(long)(int)local_52c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c")))) (+ "+") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3")))) (; ";")) (if_statement "if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }" (if "if") (parenthesized_expression "(uVar15 < uVar8 || uVar15 - uVar8 == 0)" (( "(") (binary_expression "uVar15 < uVar8 || uVar15 - uVar8 == 0" (binary_expression "uVar15 < uVar8" (identifier "uVar15") (< "<") (identifier "uVar8")) (|| "||") (binary_expression "uVar15 - uVar8 == 0" (binary_expression "uVar15 - uVar8" (identifier "uVar15") (- "-") (identifier "uVar8")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n                    RelinquishMagickMemory(local_550);\n                    iVar3 = 0;\n                    goto LAB_003c9a8e;\n                  }" ({ "{") (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c9a8e;" (goto "goto") (statement_identifier "LAB_003c9a8e") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;" (assignment_expression "*(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c" (pointer_expression "*(undefined1 *)((long)local_550 + uVar8)" (* "*") (cast_expression "(undefined1 *)((long)local_550 + uVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_550 + uVar8)" (( "(") (binary_expression "(long)local_550 + uVar8" (cast_expression "(long)local_550" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_550")) (+ "+") (identifier "uVar8")) () ")")))) (= "=") (cast_expression "(undefined1)local_51c" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_51c"))) (; ";")) (if_statement "if (local_4a0 < iVar3) {\n                    local_4a0 = iVar3;\n                  }" (if "if") (parenthesized_expression "(local_4a0 < iVar3)" (( "(") (binary_expression "local_4a0 < iVar3" (identifier "local_4a0") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n                    local_4a0 = iVar3;\n                  }" ({ "{") (expression_statement "local_4a0 = iVar3;" (assignment_expression "local_4a0 = iVar3" (identifier "local_4a0") (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (if_statement "if (local_4bc < iVar17) {\n                    local_4bc = iVar17;\n                  }" (if "if") (parenthesized_expression "(local_4bc < iVar17)" (( "(") (binary_expression "local_4bc < iVar17" (identifier "local_4bc") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n                    local_4bc = iVar17;\n                  }" ({ "{") (expression_statement "local_4bc = iVar17;" (assignment_expression "local_4bc = iVar17" (identifier "local_4bc") (= "=") (identifier "iVar17")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar5 = uVar5 * 2;" (assignment_expression "uVar5 = uVar5 * 2" (identifier "uVar5") (= "=") (binary_expression "uVar5 * 2" (identifier "uVar5") (* "*") (number_literal "2"))) (; ";")) (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" (identifier "lVar6") (= "=") (binary_expression "lVar6 + 1" (identifier "lVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar6 != 6)" (( "(") (binary_expression "lVar6 != 6" (identifier "lVar6") (!= "!=") (number_literal "6")) () ")")) (; ";")) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" (else "else") (compound_statement "{\n              lVar6 = (long)(int)local_52c;\n              uVar18 = 1;\n              iVar12 = 0;\n              sVar11 = (size_t)local_520;\n              do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);\n              local_520 = 1;\n              iVar3 = iVar17;\n            }" ({ "{") (expression_statement "lVar6 = (long)(int)local_52c;" (assignment_expression "lVar6 = (long)(int)local_52c" (identifier "lVar6") (= "=") (cast_expression "(long)(int)local_52c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c")))) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar11 = (size_t)local_520;" (assignment_expression "sVar11 = (size_t)local_520" (identifier "sVar11") (= "=") (cast_expression "(size_t)local_520" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_520"))) (; ";")) (do_statement "do {\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              } while (iVar12 < 6);" (do "do") (compound_statement "{\n                if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }\n                uVar18 = uVar18 << 1;\n                iVar12 = iVar12 + 1;\n              }" ({ "{") (if_statement "if ((uVar18 & uVar21) != 0) {\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }" (if "if") (parenthesized_expression "((uVar18 & uVar21) != 0)" (( "(") (binary_expression "(uVar18 & uVar21) != 0" (parenthesized_expression "(uVar18 & uVar21)" (( "(") (binary_expression "uVar18 & uVar21" (identifier "uVar18") (& "&") (identifier "uVar21")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_47c = 1;\n                  if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }\n                  iVar4 = local_47c;\n                  iVar16 = local_4c8 + iVar12;\n                  iVar10 = iVar16 + local_47c;\n                  if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }\n                  if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }\n                  iVar16 = iVar10 + -1;\n                  if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }\n                  iVar12 = iVar12 + iVar4 + -1;\n                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);\n                  local_4bc = iVar16;\n                }" ({ "{") (expression_statement "local_47c = 1;" (assignment_expression "local_47c = 1" (identifier "local_47c") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar12 + 1 < 6) {\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar12 + 1 < 6)" (( "(") (binary_expression "iVar12 + 1 < 6" (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n                    uVar2 = uVar18;\n                    for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }\n                  }" ({ "{") (expression_statement "uVar2 = uVar18;" (assignment_expression "uVar2 = uVar18" (identifier "uVar2") (= "=") (identifier "uVar18")) (; ";")) (for_statement "for (iVar16 = 2;\n                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {\n                    }" (for "for") (( "(") (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";") (parenthesized_expression "(uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16))" (( "(") (comma_expression "uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)" (assignment_expression "uVar2 = uVar2 * 2" (identifier "uVar2") (= "=") (binary_expression "uVar2 * 2" (identifier "uVar2") (* "*") (number_literal "2"))) (, ",") (binary_expression "(uVar21 & uVar2) != 0 &&\n                        (local_47c = iVar16, 6 - iVar12 != iVar16)" (binary_expression "(uVar21 & uVar2) != 0" (parenthesized_expression "(uVar21 & uVar2)" (( "(") (binary_expression "uVar21 & uVar2" (identifier "uVar21") (& "&") (identifier "uVar2")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(local_47c = iVar16, 6 - iVar12 != iVar16)" (( "(") (comma_expression "local_47c = iVar16, 6 - iVar12 != iVar16" (assignment_expression "local_47c = iVar16" (identifier "local_47c") (= "=") (identifier "iVar16")) (, ",") (binary_expression "6 - iVar12 != iVar16" (binary_expression "6 - iVar12" (number_literal "6") (- "-") (identifier "iVar12")) (!= "!=") (identifier "iVar16"))) () ")")))) () ")")) (; ";") (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                    }" ({ "{") (} "}"))) (} "}"))) (expression_statement "iVar4 = local_47c;" (assignment_expression "iVar4 = local_47c" (identifier "iVar4") (= "=") (identifier "local_47c")) (; ";")) (expression_statement "iVar16 = local_4c8 + iVar12;" (assignment_expression "iVar16 = local_4c8 + iVar12" (identifier "iVar16") (= "=") (binary_expression "local_4c8 + iVar12" (identifier "local_4c8") (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "iVar10 = iVar16 + local_47c;" (assignment_expression "iVar10 = iVar16 + local_47c" (identifier "iVar10") (= "=") (binary_expression "iVar16 + local_47c" (identifier "iVar16") (+ "+") (identifier "local_47c"))) (; ";")) (if_statement "if (iVar16 < iVar10) {\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar16 < iVar10)" (( "(") (binary_expression "iVar16 < iVar10" (identifier "iVar16") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n                    lVar20 = iVar16 * lVar6 + (long)iVar3;\n                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }\n                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;\n                    while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }\n                  }" ({ "{") (expression_statement "lVar20 = iVar16 * lVar6 + (long)iVar3;" (assignment_expression "lVar20 = iVar16 * lVar6 + (long)iVar3" (identifier "lVar20") (= "=") (binary_expression "iVar16 * lVar6 + (long)iVar3" (binary_expression "iVar16 * lVar6" (identifier "iVar16") (* "*") (identifier "lVar6")) (+ "+") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3")))) (; ";")) (if_statement "if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }" (if "if") (parenthesized_expression "((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11)" (( "(") (binary_expression "(ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11" (call_expression "(ulong)((int)uVar5 * lVar6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar5 * lVar6)" (( "(") (binary_expression "(int)uVar5 * lVar6" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (* "*") (identifier "lVar6")) () ")"))) (<= "<=") (binary_expression "lVar20 + sVar11" (identifier "lVar20") (+ "+") (identifier "sVar11"))) () ")")) (compound_statement "{\nLAB_003ca553:\n                      RelinquishMagickMemory(local_550);\n                      iVar3 = 0;\n                      goto LAB_003c9a8e;\n                    }" ({ "{") (labeled_statement "LAB_003ca553:\n                      RelinquishMagickMemory(local_550);" (statement_identifier "LAB_003ca553") (: ":") (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c9a8e;" (goto "goto") (statement_identifier "LAB_003c9a8e") (; ";")) (} "}"))) (expression_statement "uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;" (assignment_expression "uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11" (identifier "uVar15") (= "=") (binary_expression "(iVar16 + 1) * lVar6 + (long)iVar3 + sVar11" (binary_expression "(iVar16 + 1) * lVar6 + (long)iVar3" (binary_expression "(iVar16 + 1) * lVar6" (parenthesized_expression "(iVar16 + 1)" (( "(") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1")) () ")")) (* "*") (identifier "lVar6")) (+ "+") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3"))) (+ "+") (identifier "sVar11"))) (; ";")) (while_statement "while( true ) {\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);\n                      iVar16 = iVar16 + 1;\n                      if (iVar16 == iVar10) break;\n                      lVar20 = uVar15 - sVar11;\n                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;\n                      uVar15 = uVar15 + lVar6;\n                      if (bVar22) goto LAB_003ca553;\n                    }" ({ "{") (expression_statement "memset((void *)((long)local_550 + lVar20),local_51c,sVar11);" (call_expression "memset((void *)((long)local_550 + lVar20),local_51c,sVar11)" (identifier "memset") (argument_list "((void *)((long)local_550 + lVar20),local_51c,sVar11)" (( "(") (cast_expression "(void *)((long)local_550 + lVar20)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_550 + lVar20)" (( "(") (binary_expression "(long)local_550 + lVar20" (cast_expression "(long)local_550" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_550")) (+ "+") (identifier "lVar20")) () ")"))) (, ",") (identifier "local_51c") (, ",") (identifier "sVar11") () ")"))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar16 == iVar10) break;" (if "if") (parenthesized_expression "(iVar16 == iVar10)" (( "(") (binary_expression "iVar16 == iVar10" (identifier "iVar16") (== "==") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar20 = uVar15 - sVar11;" (assignment_expression "lVar20 = uVar15 - sVar11" (identifier "lVar20") (= "=") (binary_expression "uVar15 - sVar11" (identifier "uVar15") (- "-") (identifier "sVar11"))) (; ";")) (expression_statement "bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;" (assignment_expression "bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15" (identifier "bVar22") (= "=") (binary_expression "(ulong)((int)uVar5 * lVar6) <= uVar15" (call_expression "(ulong)((int)uVar5 * lVar6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar5 * lVar6)" (( "(") (binary_expression "(int)uVar5 * lVar6" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (* "*") (identifier "lVar6")) () ")"))) (<= "<=") (identifier "uVar15"))) (; ";")) (expression_statement "uVar15 = uVar15 + lVar6;" (assignment_expression "uVar15 = uVar15 + lVar6" (identifier "uVar15") (= "=") (binary_expression "uVar15 + lVar6" (identifier "uVar15") (+ "+") (identifier "lVar6"))) (; ";")) (if_statement "if (bVar22) goto LAB_003ca553;" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (goto_statement "goto LAB_003ca553;" (goto "goto") (statement_identifier "LAB_003ca553") (; ";"))) (} "}"))) (} "}"))) (if_statement "if (local_4a0 < iVar17 + -1) {\n                    local_4a0 = iVar17 + -1;\n                  }" (if "if") (parenthesized_expression "(local_4a0 < iVar17 + -1)" (( "(") (binary_expression "local_4a0 < iVar17 + -1" (identifier "local_4a0") (< "<") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n                    local_4a0 = iVar17 + -1;\n                  }" ({ "{") (expression_statement "local_4a0 = iVar17 + -1;" (assignment_expression "local_4a0 = iVar17 + -1" (identifier "local_4a0") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar16 = iVar10 + -1;" (assignment_expression "iVar16 = iVar10 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar10 + -1 <= local_4bc) {\n                    iVar16 = local_4bc;\n                  }" (if "if") (parenthesized_expression "(iVar10 + -1 <= local_4bc)" (( "(") (binary_expression "iVar10 + -1 <= local_4bc" (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1")) (<= "<=") (identifier "local_4bc")) () ")")) (compound_statement "{\n                    iVar16 = local_4bc;\n                  }" ({ "{") (expression_statement "iVar16 = local_4bc;" (assignment_expression "iVar16 = local_4bc" (identifier "iVar16") (= "=") (identifier "local_4bc")) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 + iVar4 + -1;" (assignment_expression "iVar12 = iVar12 + iVar4 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + iVar4 + -1" (binary_expression "iVar12 + iVar4" (identifier "iVar12") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);" (assignment_expression "uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f)" (identifier "uVar18") (= "=") (binary_expression "uVar18 << ((byte)(iVar4 + -1) & 0x1f)" (identifier "uVar18") (<< "<<") (parenthesized_expression "((byte)(iVar4 + -1) & 0x1f)" (( "(") (binary_expression "(byte)(iVar4 + -1) & 0x1f" (call_expression "(byte)(iVar4 + -1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(iVar4 + -1)" (( "(") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1")) () ")"))) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_4bc = iVar16;" (assignment_expression "local_4bc = iVar16" (identifier "local_4bc") (= "=") (identifier "iVar16")) (; ";")) (} "}"))) (expression_statement "uVar18 = uVar18 << 1;" (assignment_expression "uVar18 = uVar18 << 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 << 1" (identifier "uVar18") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 < 6)" (( "(") (binary_expression "iVar12 < 6" (identifier "iVar12") (< "<") (number_literal "6")) () ")")) (; ";")) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = iVar17;" (assignment_expression "iVar3 = iVar17" (identifier "iVar3") (= "=") (identifier "iVar17")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n            param_2 = param_2 + 1;\n          }" (else "else") (compound_statement "{\n            param_2 = param_2 + 1;\n          }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}"))))) (} "}")))) (} "}")))) (if_statement "if (bVar1 == 0x90) goto LAB_003c9c82;" (if "if") (parenthesized_expression "(bVar1 == 0x90)" (( "(") (binary_expression "bVar1 == 0x90" (identifier "bVar1") (== "==") (number_literal "0x90")) () ")")) (goto_statement "goto LAB_003c9c82;" (goto "goto") (statement_identifier "LAB_003c9c82") (; ";"))) (if_statement "if (bVar1 == 0x9c) goto LAB_003ca670;" (if "if") (parenthesized_expression "(bVar1 == 0x9c)" (( "(") (binary_expression "bVar1 == 0x9c" (identifier "bVar1") (== "==") (number_literal "0x9c")) () ")")) (goto_statement "goto LAB_003ca670;" (goto "goto") (statement_identifier "LAB_003ca670") (; ";"))) (if_statement "if (bVar1 == 0x22) {\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x22)" (( "(") (binary_expression "bVar1 == 0x22" (identifier "bVar1") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\n        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n        uVar5 = local_518;\n        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }\n        local_518 = uVar5;\n        uVar5 = local_514;\n        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }\n        local_514 = uVar5;\n        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }\n        goto LAB_003c9c9d;\n      }" ({ "{") (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "param_2") (= "=") (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "FUN_003c96bf") (argument_list "(param_2 + 1,&local_478,&local_47c)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_478" (& "&") (identifier "local_478")) (, ",") (pointer_expression "&local_47c" (& "&") (identifier "local_47c")) () ")"))))) (; ";")) (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" (identifier "uVar5") (= "=") (identifier "local_518")) (; ";")) (if_statement "if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {\n          uVar5 = local_518;\n        }" (if "if") (parenthesized_expression "((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1))" (( "(") (binary_expression "(2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)" (parenthesized_expression "(2 < local_47c)" (( "(") (binary_expression "2 < local_47c" (number_literal "2") (< "<") (identifier "local_47c")) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = local_470 & 0xffff, (int)local_470 < 1)" (( "(") (comma_expression "uVar5 = local_470 & 0xffff, (int)local_470 < 1" (assignment_expression "uVar5 = local_470 & 0xffff" (identifier "uVar5") (= "=") (binary_expression "local_470 & 0xffff" (identifier "local_470") (& "&") (number_literal "0xffff"))) (, ",") (binary_expression "(int)local_470 < 1" (cast_expression "(int)local_470" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_470")) (< "<") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = local_518;\n        }" ({ "{") (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" (identifier "uVar5") (= "=") (identifier "local_518")) (; ";")) (} "}"))) (expression_statement "local_518 = uVar5;" (assignment_expression "local_518 = uVar5" (identifier "local_518") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = local_514;" (assignment_expression "uVar5 = local_514" (identifier "uVar5") (= "=") (identifier "local_514")) (; ";")) (if_statement "if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {\n          uVar5 = local_514;\n        }" (if "if") (parenthesized_expression "((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1))" (( "(") (binary_expression "(3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)" (parenthesized_expression "(3 < local_47c)" (( "(") (binary_expression "3 < local_47c" (number_literal "3") (< "<") (identifier "local_47c")) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)" (( "(") (comma_expression "uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1" (assignment_expression "uVar5 = uStack_46c & 0xffff" (identifier "uVar5") (= "=") (binary_expression "uStack_46c & 0xffff" (identifier "uStack_46c") (& "&") (number_literal "0xffff"))) (, ",") (binary_expression "(int)uStack_46c < 1" (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c")) (< "<") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = local_514;\n        }" ({ "{") (expression_statement "uVar5 = local_514;" (assignment_expression "uVar5 = local_514" (identifier "uVar5") (= "=") (identifier "local_514")) (; ";")) (} "}"))) (expression_statement "local_514 = uVar5;" (assignment_expression "local_514 = uVar5" (identifier "local_514") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }" (if "if") (parenthesized_expression "(((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514))" (( "(") (binary_expression "((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)" (parenthesized_expression "((int)local_52c < (int)local_518)" (( "(") (binary_expression "(int)local_52c < (int)local_518" (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c")) (< "<") (cast_expression "(int)local_518" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_518"))) () ")")) (|| "||") (parenthesized_expression "((int)uVar19 < (int)local_514)" (( "(") (binary_expression "(int)uVar19 < (int)local_514" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (< "<") (cast_expression "(int)local_514" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_514"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = local_52c;\n          if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }\n          uVar21 = uVar19;\n          if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }\n          lVar6 = (long)(int)uVar21;\n          lVar20 = (long)(int)uVar5;\n          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);\n          if (iVar17 == 0) goto LAB_003ca670;\n          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);\n          if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }\n          memset(pvVar7,0,lVar6 * lVar20);\n          if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }\n          RelinquishMagickMemory(local_550);\n          local_550 = pvVar7;\n          local_52c = uVar5;\n          uVar19 = uVar21;\n        }" ({ "{") (expression_statement "uVar5 = local_52c;" (assignment_expression "uVar5 = local_52c" (identifier "uVar5") (= "=") (identifier "local_52c")) (; ";")) (if_statement "if ((int)local_52c <= (int)local_518) {\n            uVar5 = local_518;\n          }" (if "if") (parenthesized_expression "((int)local_52c <= (int)local_518)" (( "(") (binary_expression "(int)local_52c <= (int)local_518" (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c")) (<= "<=") (cast_expression "(int)local_518" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_518"))) () ")")) (compound_statement "{\n            uVar5 = local_518;\n          }" ({ "{") (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" (identifier "uVar5") (= "=") (identifier "local_518")) (; ";")) (} "}"))) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" (identifier "uVar21") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if ((int)uVar19 <= (int)local_514) {\n            uVar21 = local_514;\n          }" (if "if") (parenthesized_expression "((int)uVar19 <= (int)local_514)" (( "(") (binary_expression "(int)uVar19 <= (int)local_514" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)local_514" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_514"))) () ")")) (compound_statement "{\n            uVar21 = local_514;\n          }" ({ "{") (expression_statement "uVar21 = local_514;" (assignment_expression "uVar21 = local_514" (identifier "uVar21") (= "=") (identifier "local_514")) (; ";")) (} "}"))) (expression_statement "lVar6 = (long)(int)uVar21;" (assignment_expression "lVar6 = (long)(int)uVar21" (identifier "lVar6") (= "=") (cast_expression "(long)(int)uVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")))) (; ";")) (expression_statement "lVar20 = (long)(int)uVar5;" (assignment_expression "lVar20 = (long)(int)uVar5" (identifier "lVar20") (= "=") (cast_expression "(long)(int)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")))) (; ";")) (expression_statement "iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);" (assignment_expression "iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8)" (identifier "iVar17") (= "=") (call_expression "SetImageExtent(param_1,lVar20,lVar6,param_8)" (identifier "SetImageExtent") (argument_list "(param_1,lVar20,lVar6,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "lVar20") (, ",") (identifier "lVar6") (, ",") (identifier "param_8") () ")")))) (; ";")) (if_statement "if (iVar17 == 0) goto LAB_003ca670;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003ca670;" (goto "goto") (statement_identifier "LAB_003ca670") (; ";"))) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6)" (identifier "pvVar7") (= "=") (cast_expression "(void *)AcquireQuantumMemory(lVar20,lVar6)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(lVar20,lVar6)" (identifier "AcquireQuantumMemory") (argument_list "(lVar20,lVar6)" (( "(") (identifier "lVar20") (, ",") (identifier "lVar6") () ")"))))) (; ";")) (if_statement "if (pvVar7 == (void *)0x0) {\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }" (if "if") (parenthesized_expression "(pvVar7 == (void *)0x0)" (( "(") (binary_expression "pvVar7 == (void *)0x0" (identifier "pvVar7") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            RelinquishMagickMemory(local_550);\n            iVar3 = 0;\n            goto LAB_003c9a8e;\n          }" ({ "{") (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c9a8e;" (goto "goto") (statement_identifier "LAB_003c9a8e") (; ";")) (} "}"))) (expression_statement "memset(pvVar7,0,lVar6 * lVar20);" (call_expression "memset(pvVar7,0,lVar6 * lVar20)" (identifier "memset") (argument_list "(pvVar7,0,lVar6 * lVar20)" (( "(") (identifier "pvVar7") (, ",") (number_literal "0") (, ",") (binary_expression "lVar6 * lVar20" (identifier "lVar6") (* "*") (identifier "lVar20")) () ")"))) (; ";")) (if_statement "if (0 < (int)uVar19) {\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }" (if "if") (parenthesized_expression "(0 < (int)uVar19)" (( "(") (binary_expression "0 < (int)uVar19" (number_literal "0") (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n            iVar12 = 0;\n            iVar17 = 0;\n            uVar18 = 0;\n            do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);\n          }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            } while (uVar19 != uVar18);" (do "do") (compound_statement "{\n              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);\n              uVar18 = uVar18 + 1;\n              iVar17 = iVar17 + local_52c;\n              iVar12 = iVar12 + uVar5;\n            }" ({ "{") (expression_statement "memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c);" (call_expression "memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c)" (identifier "memcpy") (argument_list "((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                     (long)(int)local_52c)" (( "(") (cast_expression "(void *)((long)iVar12 + (long)pvVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar12 + (long)pvVar7)" (( "(") (binary_expression "(long)iVar12 + (long)pvVar7" (cast_expression "(long)iVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar12")) (+ "+") (cast_expression "(long)pvVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar7"))) () ")"))) (, ",") (cast_expression "(void *)((long)iVar17 + (long)local_550)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar17 + (long)local_550)" (( "(") (binary_expression "(long)iVar17 + (long)local_550" (cast_expression "(long)iVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar17")) (+ "+") (cast_expression "(long)local_550" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_550"))) () ")"))) (, ",") (cast_expression "(long)(int)local_52c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c"))) () ")"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = iVar17 + local_52c;" (assignment_expression "iVar17 = iVar17 + local_52c" (identifier "iVar17") (= "=") (binary_expression "iVar17 + local_52c" (identifier "iVar17") (+ "+") (identifier "local_52c"))) (; ";")) (expression_statement "iVar12 = iVar12 + uVar5;" (assignment_expression "iVar12 = iVar12 + uVar5" (identifier "iVar12") (= "=") (binary_expression "iVar12 + uVar5" (identifier "iVar12") (+ "+") (identifier "uVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar19 != uVar18)" (( "(") (binary_expression "uVar19 != uVar18" (identifier "uVar19") (!= "!=") (identifier "uVar18")) () ")")) (; ";")) (} "}"))) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" (identifier "local_550") (= "=") (identifier "pvVar7")) (; ";")) (expression_statement "local_52c = uVar5;" (assignment_expression "local_52c = uVar5" (identifier "local_52c") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" (identifier "uVar19") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (goto_statement "goto LAB_003c9c9d;" (goto "goto") (statement_identifier "LAB_003c9c9d") (; ";")) (} "}"))) (if_statement "if (bVar1 != 0x21) {\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" (if "if") (parenthesized_expression "(bVar1 != 0x21)" (( "(") (binary_expression "bVar1 != 0x21" (identifier "bVar1") (!= "!=") (number_literal "0x21")) () ")")) (compound_statement "{\n        if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        goto LAB_003c9c9d;\n      }" ({ "{") (if_statement "if (bVar1 == 0x23) {\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }\n        else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" (if "if") (parenthesized_expression "(bVar1 == 0x23)" (( "(") (binary_expression "bVar1 == 0x23" (identifier "bVar1") (== "==") (number_literal "0x23")) () ")")) (compound_statement "{\n          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);\n          if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }\n          if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }\n        }" ({ "{") (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "param_2") (= "=") (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "FUN_003c96bf") (argument_list "(param_2 + 1,&local_478,&local_47c)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_478" (& "&") (identifier "local_478")) (, ",") (pointer_expression "&local_47c" (& "&") (identifier "local_47c")) () ")"))))) (; ";")) (if_statement "if (0 < local_47c) {\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }" (if "if") (parenthesized_expression "(0 < local_47c)" (( "(") (binary_expression "0 < local_47c" (number_literal "0") (< "<") (identifier "local_47c")) () ")")) (compound_statement "{\n            iVar17 = 0xff;\n            if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }\n            local_51c = 0;\n            if (-1 < iVar17) {\n              local_51c = iVar17;\n            }\n          }" ({ "{") (expression_statement "iVar17 = 0xff;" (assignment_expression "iVar17 = 0xff" (identifier "iVar17") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if ((int)local_478 < 0x100) {\n              iVar17 = (int)local_478;\n            }" (if "if") (parenthesized_expression "((int)local_478 < 0x100)" (( "(") (binary_expression "(int)local_478 < 0x100" (cast_expression "(int)local_478" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_478")) (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n              iVar17 = (int)local_478;\n            }" ({ "{") (expression_statement "iVar17 = (int)local_478;" (assignment_expression "iVar17 = (int)local_478" (identifier "iVar17") (= "=") (cast_expression "(int)local_478" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_478"))) (; ";")) (} "}"))) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" (identifier "local_51c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < iVar17) {\n              local_51c = iVar17;\n            }" (if "if") (parenthesized_expression "(-1 < iVar17)" (( "(") (binary_expression "-1 < iVar17" (number_literal "-1") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n              local_51c = iVar17;\n            }" ({ "{") (expression_statement "local_51c = iVar17;" (assignment_expression "local_51c = iVar17" (identifier "local_51c") (= "=") (identifier "iVar17")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (4 < local_47c) {\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }" (if "if") (parenthesized_expression "(4 < local_47c)" (( "(") (binary_expression "4 < local_47c" (number_literal "4") (< "<") (identifier "local_47c")) () ")")) (compound_statement "{\n            if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }\n          }" ({ "{") (if_statement "if (local_478._4_4_ == 1) {\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }\n            else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" (if "if") (parenthesized_expression "(local_478._4_4_ == 1)" (( "(") (binary_expression "local_478._4_4_ == 1" (field_expression "local_478._4_4_" (identifier "local_478") (. ".") (field_identifier "_4_4_")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }\n              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;\n            }" ({ "{") (if_statement "if (0x168 < (int)local_470) {\n                local_470 = 0x168;\n              }" (if "if") (parenthesized_expression "(0x168 < (int)local_470)" (( "(") (binary_expression "0x168 < (int)local_470" (number_literal "0x168") (< "<") (cast_expression "(int)local_470" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_470"))) () ")")) (compound_statement "{\n                local_470 = 0x168;\n              }" ({ "{") (expression_statement "local_470 = 0x168;" (assignment_expression "local_470 = 0x168" (identifier "local_470") (= "=") (number_literal "0x168")) (; ";")) (} "}"))) (if_statement "if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }" (if "if") (parenthesized_expression "(100 < (int)uStack_46c)" (( "(") (binary_expression "100 < (int)uStack_46c" (number_literal "100") (< "<") (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c"))) () ")")) (compound_statement "{\n                uStack_46c = 100;\n              }" ({ "{") (expression_statement "uStack_46c = 100;" (assignment_expression "uStack_46c = 100" (identifier "uStack_46c") (= "=") (number_literal "100")) (; ";")) (} "}"))) (if_statement "if ((int)local_468 < 0x65) {\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }\n              else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" (if "if") (parenthesized_expression "((int)local_468 < 0x65)" (( "(") (binary_expression "(int)local_468 < 0x65" (cast_expression "(int)local_468" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_468")) (< "<") (number_literal "0x65")) () ")")) (compound_statement "{\n                if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }\n                iVar12 = (int)(uStack_46c * 0xff) / 100;\n                iVar16 = iVar12;\n                iVar17 = iVar12;\n              }" ({ "{") (if_statement "if ((int)local_468 != 0) {\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }" (if "if") (parenthesized_expression "((int)local_468 != 0)" (( "(") (binary_expression "(int)local_468 != 0" (cast_expression "(int)local_468" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_468")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                  iVar12 = (int)local_468;\n                  goto LAB_003ca0ae;\n                }" ({ "{") (expression_statement "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);" (assignment_expression "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168)" (identifier "iVar17") (= "=") (cast_expression "(int)(((long)(int)local_470 * 100) / 0x168)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(((long)(int)local_470 * 100) / 0x168)" (( "(") (binary_expression "((long)(int)local_470 * 100) / 0x168" (parenthesized_expression "((long)(int)local_470 * 100)" (( "(") (binary_expression "(long)(int)local_470 * 100" (cast_expression "(long)(int)local_470" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_470" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_470"))) (* "*") (number_literal "100")) () ")")) (/ "/") (number_literal "0x168")) () ")")))) (; ";")) (expression_statement "iVar12 = (int)local_468;" (assignment_expression "iVar12 = (int)local_468" (identifier "iVar12") (= "=") (cast_expression "(int)local_468" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_468"))) (; ";")) (goto_statement "goto LAB_003ca0ae;" (goto "goto") (statement_identifier "LAB_003ca0ae") (; ";")) (} "}"))) (expression_statement "iVar12 = (int)(uStack_46c * 0xff) / 100;" (assignment_expression "iVar12 = (int)(uStack_46c * 0xff) / 100" (identifier "iVar12") (= "=") (binary_expression "(int)(uStack_46c * 0xff) / 100" (cast_expression "(int)(uStack_46c * 0xff)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uStack_46c * 0xff)" (( "(") (binary_expression "uStack_46c * 0xff" (identifier "uStack_46c") (* "*") (number_literal "0xff")) () ")"))) (/ "/") (number_literal "100"))) (; ";")) (expression_statement "iVar16 = iVar12;" (assignment_expression "iVar16 = iVar12" (identifier "iVar16") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" (identifier "iVar17") (= "=") (identifier "iVar12")) (; ";")) (} "}")) (else_clause "else {\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" (else "else") (compound_statement "{\n                local_468 = CONCAT44(local_468._4_4_,100);\n                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);\n                iVar12 = 100;\nLAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }\n                iVar10 = uStack_46c * 2 - iVar16;\n                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);\n                iVar12 = (iVar12 * 0xff + 0x32) / 100;\n                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);\n                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);\n                iVar16 = (iVar17 * 0xff + 0x32) / 100;\n                iVar17 = (iVar4 * 0xff + 0x32) / 100;\n              }" ({ "{") (expression_statement "local_468 = CONCAT44(local_468._4_4_,100);" (assignment_expression "local_468 = CONCAT44(local_468._4_4_,100)" (identifier "local_468") (= "=") (call_expression "CONCAT44(local_468._4_4_,100)" (identifier "CONCAT44") (argument_list "(local_468._4_4_,100)" (( "(") (field_expression "local_468._4_4_" (identifier "local_468") (. ".") (field_identifier "_4_4_")) (, ",") (number_literal "100") () ")")))) (; ";")) (expression_statement "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);" (assignment_expression "iVar17 = (int)(((long)(int)local_470 * 100) / 0x168)" (identifier "iVar17") (= "=") (cast_expression "(int)(((long)(int)local_470 * 100) / 0x168)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(((long)(int)local_470 * 100) / 0x168)" (( "(") (binary_expression "((long)(int)local_470 * 100) / 0x168" (parenthesized_expression "((long)(int)local_470 * 100)" (( "(") (binary_expression "(long)(int)local_470 * 100" (cast_expression "(long)(int)local_470" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_470" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_470"))) (* "*") (number_literal "100")) () ")")) (/ "/") (number_literal "0x168")) () ")")))) (; ";")) (expression_statement "iVar12 = 100;" (assignment_expression "iVar12 = 100" (identifier "iVar12") (= "=") (number_literal "100")) (; ";")) (labeled_statement "LAB_003ca0ae:\n                if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" (statement_identifier "LAB_003ca0ae") (: ":") (if_statement "if ((int)uStack_46c < 0x33) {\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }\n                else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" (if "if") (parenthesized_expression "((int)uStack_46c < 0x33)" (( "(") (binary_expression "(int)uStack_46c < 0x33" (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c")) (< "<") (number_literal "0x33")) () ")")) (compound_statement "{\n                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);\n                }" ({ "{") (expression_statement "lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;" (assignment_expression "lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32" (identifier "lVar6") (= "=") (binary_expression "(long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32" (binary_expression "(long)(iVar12 + 100) * (long)(int)uStack_46c" (cast_expression "(long)(iVar12 + 100)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar12 + 100)" (( "(") (binary_expression "iVar12 + 100" (identifier "iVar12") (+ "+") (number_literal "100")) () ")"))) (* "*") (cast_expression "(long)(int)uStack_46c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c")))) (+ "+") (number_literal "0x32"))) (; ";")) (expression_statement "iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f);" (assignment_expression "iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f)" (identifier "iVar16") (= "=") (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6) - (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6)" (( "(") (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" (identifier "SUB168") (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" (( "(") (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" (identifier "SEXT816") (argument_list "(-0x5c28f5c28f5c28f5)" (( "(") (number_literal "-0x5c28f5c28f5c28f5") () ")"))) (* "*") (call_expression "SEXT816(lVar6)" (identifier "SEXT816") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")")))) (, ",") (number_literal "8") () ")"))) (+ "+") (identifier "lVar6")) (>> ">>") (number_literal "6")) () ")"))) (- "-") (cast_expression "(int)(lVar6 >> 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar6 >> 0x3f)" (( "(") (binary_expression "lVar6 >> 0x3f" (identifier "lVar6") (>> ">>") (number_literal "0x3f")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" (else "else") (compound_statement "{\n                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;\n                  iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));\n                }" ({ "{") (expression_statement "lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;" (assignment_expression "lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32" (identifier "lVar6") (= "=") (binary_expression "(long)iVar12 * (long)(int)uStack_46c + 0x32" (binary_expression "(long)iVar12 * (long)(int)uStack_46c" (cast_expression "(long)iVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar12")) (* "*") (cast_expression "(long)(int)uStack_46c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c")))) (+ "+") (number_literal "0x32"))) (; ";")) (expression_statement "iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f));" (assignment_expression "iVar16 = (uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" (identifier "iVar16") (= "=") (binary_expression "(uStack_46c + iVar12) -\n                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" (parenthesized_expression "(uStack_46c + iVar12)" (( "(") (binary_expression "uStack_46c + iVar12" (identifier "uStack_46c") (+ "+") (identifier "iVar12")) () ")")) (- "-") (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f))" (( "(") (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6) - (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6)" (( "(") (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>\n                                 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" (identifier "SUB168") (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" (( "(") (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" (identifier "SEXT816") (argument_list "(-0x5c28f5c28f5c28f5)" (( "(") (number_literal "-0x5c28f5c28f5c28f5") () ")"))) (* "*") (call_expression "SEXT816(lVar6)" (identifier "SEXT816") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")")))) (, ",") (number_literal "8") () ")"))) (+ "+") (identifier "lVar6")) (>> ">>") (number_literal "6")) () ")"))) (- "-") (cast_expression "(int)(lVar6 >> 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar6 >> 0x3f)" (( "(") (binary_expression "lVar6 >> 0x3f" (identifier "lVar6") (>> ">>") (number_literal "0x3f")) () ")")))) () ")")))) (; ";")) (} "}"))))) (expression_statement "iVar10 = uStack_46c * 2 - iVar16;" (assignment_expression "iVar10 = uStack_46c * 2 - iVar16" (identifier "iVar10") (= "=") (binary_expression "uStack_46c * 2 - iVar16" (binary_expression "uStack_46c * 2" (identifier "uStack_46c") (* "*") (number_literal "2")) (- "-") (identifier "iVar16"))) (; ";")) (expression_statement "iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);" (assignment_expression "iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21)" (identifier "iVar12") (= "=") (call_expression "FUN_003c9609(iVar10,iVar16,iVar17 + 0x21)" (identifier "FUN_003c9609") (argument_list "(iVar10,iVar16,iVar17 + 0x21)" (( "(") (identifier "iVar10") (, ",") (identifier "iVar16") (, ",") (binary_expression "iVar17 + 0x21" (identifier "iVar17") (+ "+") (number_literal "0x21")) () ")")))) (; ";")) (expression_statement "iVar12 = (iVar12 * 0xff + 0x32) / 100;" (assignment_expression "iVar12 = (iVar12 * 0xff + 0x32) / 100" (identifier "iVar12") (= "=") (binary_expression "(iVar12 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar12 * 0xff + 0x32)" (( "(") (binary_expression "iVar12 * 0xff + 0x32" (binary_expression "iVar12 * 0xff" (identifier "iVar12") (* "*") (number_literal "0xff")) (+ "+") (number_literal "0x32")) () ")")) (/ "/") (number_literal "100"))) (; ";")) (expression_statement "iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);" (assignment_expression "iVar4 = FUN_003c9609(iVar10,iVar16,iVar17)" (identifier "iVar4") (= "=") (call_expression "FUN_003c9609(iVar10,iVar16,iVar17)" (identifier "FUN_003c9609") (argument_list "(iVar10,iVar16,iVar17)" (( "(") (identifier "iVar10") (, ",") (identifier "iVar16") (, ",") (identifier "iVar17") () ")")))) (; ";")) (expression_statement "iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);" (assignment_expression "iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21)" (identifier "iVar17") (= "=") (call_expression "FUN_003c9609(iVar10,iVar16,iVar17 + -0x21)" (identifier "FUN_003c9609") (argument_list "(iVar10,iVar16,iVar17 + -0x21)" (( "(") (identifier "iVar10") (, ",") (identifier "iVar16") (, ",") (binary_expression "iVar17 + -0x21" (identifier "iVar17") (+ "+") (number_literal "-0x21")) () ")")))) (; ";")) (expression_statement "iVar16 = (iVar17 * 0xff + 0x32) / 100;" (assignment_expression "iVar16 = (iVar17 * 0xff + 0x32) / 100" (identifier "iVar16") (= "=") (binary_expression "(iVar17 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar17 * 0xff + 0x32)" (( "(") (binary_expression "iVar17 * 0xff + 0x32" (binary_expression "iVar17 * 0xff" (identifier "iVar17") (* "*") (number_literal "0xff")) (+ "+") (number_literal "0x32")) () ")")) (/ "/") (number_literal "100"))) (; ";")) (expression_statement "iVar17 = (iVar4 * 0xff + 0x32) / 100;" (assignment_expression "iVar17 = (iVar4 * 0xff + 0x32) / 100" (identifier "iVar17") (= "=") (binary_expression "(iVar4 * 0xff + 0x32) / 100" (parenthesized_expression "(iVar4 * 0xff + 0x32)" (( "(") (binary_expression "iVar4 * 0xff + 0x32" (binary_expression "iVar4 * 0xff" (identifier "iVar4") (* "*") (number_literal "0xff")) (+ "+") (number_literal "0x32")) () ")")) (/ "/") (number_literal "100"))) (; ";")) (} "}")))) (expression_statement "(&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;" (assignment_expression "(&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16" (subscript_expression "(&uStack_448)[local_51c]" (parenthesized_expression "(&uStack_448)" (( "(") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448")) () ")")) ([ "[") (identifier "local_51c") (] "]")) (= "=") (binary_expression "iVar12 * 0x10000 + iVar17 * 0x100 + iVar16" (binary_expression "iVar12 * 0x10000 + iVar17 * 0x100" (binary_expression "iVar12 * 0x10000" (identifier "iVar12") (* "*") (number_literal "0x10000")) (+ "+") (binary_expression "iVar17 * 0x100" (identifier "iVar17") (* "*") (number_literal "0x100"))) (+ "+") (identifier "iVar16"))) (; ";")) (} "}")) (else_clause "else if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" (else "else") (if_statement "if (local_478._4_4_ == 2) {\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" (if "if") (parenthesized_expression "(local_478._4_4_ == 2)" (( "(") (binary_expression "local_478._4_4_ == 2" (field_expression "local_478._4_4_" (identifier "local_478") (. ".") (field_identifier "_4_4_")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              if (100 < (int)local_470) {\n                local_470 = 100;\n              }\n              if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }\n              if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }\n              lVar6 = (long)(int)local_470 * 0xff + 0x32;\n              lVar20 = (long)(int)local_468 * 0xff + 0x32;\n              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;\n              (&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;\n            }" ({ "{") (if_statement "if (100 < (int)local_470) {\n                local_470 = 100;\n              }" (if "if") (parenthesized_expression "(100 < (int)local_470)" (( "(") (binary_expression "100 < (int)local_470" (number_literal "100") (< "<") (cast_expression "(int)local_470" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_470"))) () ")")) (compound_statement "{\n                local_470 = 100;\n              }" ({ "{") (expression_statement "local_470 = 100;" (assignment_expression "local_470 = 100" (identifier "local_470") (= "=") (number_literal "100")) (; ";")) (} "}"))) (if_statement "if (100 < (int)uStack_46c) {\n                uStack_46c = 100;\n              }" (if "if") (parenthesized_expression "(100 < (int)uStack_46c)" (( "(") (binary_expression "100 < (int)uStack_46c" (number_literal "100") (< "<") (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c"))) () ")")) (compound_statement "{\n                uStack_46c = 100;\n              }" ({ "{") (expression_statement "uStack_46c = 100;" (assignment_expression "uStack_46c = 100" (identifier "uStack_46c") (= "=") (number_literal "100")) (; ";")) (} "}"))) (if_statement "if (100 < (int)local_468) {\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }" (if "if") (parenthesized_expression "(100 < (int)local_468)" (( "(") (binary_expression "100 < (int)local_468" (number_literal "100") (< "<") (cast_expression "(int)local_468" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_468"))) () ")")) (compound_statement "{\n                local_468 = CONCAT44(local_468._4_4_,100);\n              }" ({ "{") (expression_statement "local_468 = CONCAT44(local_468._4_4_,100);" (assignment_expression "local_468 = CONCAT44(local_468._4_4_,100)" (identifier "local_468") (= "=") (call_expression "CONCAT44(local_468._4_4_,100)" (identifier "CONCAT44") (argument_list "(local_468._4_4_,100)" (( "(") (field_expression "local_468._4_4_" (identifier "local_468") (. ".") (field_identifier "_4_4_")) (, ",") (number_literal "100") () ")")))) (; ";")) (} "}"))) (expression_statement "lVar6 = (long)(int)local_470 * 0xff + 0x32;" (assignment_expression "lVar6 = (long)(int)local_470 * 0xff + 0x32" (identifier "lVar6") (= "=") (binary_expression "(long)(int)local_470 * 0xff + 0x32" (binary_expression "(long)(int)local_470 * 0xff" (cast_expression "(long)(int)local_470" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_470" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_470"))) (* "*") (number_literal "0xff")) (+ "+") (number_literal "0x32"))) (; ";")) (expression_statement "lVar20 = (long)(int)local_468 * 0xff + 0x32;" (assignment_expression "lVar20 = (long)(int)local_468 * 0xff + 0x32" (identifier "lVar20") (= "=") (binary_expression "(long)(int)local_468 * 0xff + 0x32" (binary_expression "(long)(int)local_468 * 0xff" (cast_expression "(long)(int)local_468" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_468" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_468"))) (* "*") (number_literal "0xff")) (+ "+") (number_literal "0x32"))) (; ";")) (expression_statement "lVar14 = (long)(int)uStack_46c * 0xff + 0x32;" (assignment_expression "lVar14 = (long)(int)uStack_46c * 0xff + 0x32" (identifier "lVar14") (= "=") (binary_expression "(long)(int)uStack_46c * 0xff + 0x32" (binary_expression "(long)(int)uStack_46c * 0xff" (cast_expression "(long)(int)uStack_46c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_46c"))) (* "*") (number_literal "0xff")) (+ "+") (number_literal "0x32"))) (; ";")) (expression_statement "(&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100;" (assignment_expression "(&uStack_448)[local_51c] =\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (subscript_expression "(&uStack_448)[local_51c]" (parenthesized_expression "(&uStack_448)" (( "(") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448")) () ")")) ([ "[") (identifier "local_51c") (] "]")) (= "=") (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)) +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000 +\n                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f))" (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)) * 0x10000" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f))" (( "(") (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -\n                   (int)(lVar6 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6)" (( "(") (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" (identifier "SUB168") (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8)" (( "(") (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" (identifier "SEXT816") (argument_list "(-0x5c28f5c28f5c28f5)" (( "(") (number_literal "-0x5c28f5c28f5c28f5") () ")"))) (* "*") (call_expression "SEXT816(lVar6)" (identifier "SEXT816") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")")))) (, ",") (number_literal "8") () ")"))) (+ "+") (identifier "lVar6")) (>> ">>") (number_literal "6")) () ")"))) (- "-") (cast_expression "(int)(lVar6 >> 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar6 >> 0x3f)" (( "(") (binary_expression "lVar6 >> 0x3f" (identifier "lVar6") (>> ">>") (number_literal "0x3f")) () ")")))) () ")")) (* "*") (number_literal "0x10000")) (+ "+") (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f))" (( "(") (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -\n                   (int)(lVar20 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6)" (( "(") (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8)" (identifier "SUB168") (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8)" (( "(") (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" (identifier "SEXT816") (argument_list "(-0x5c28f5c28f5c28f5)" (( "(") (number_literal "-0x5c28f5c28f5c28f5") () ")"))) (* "*") (call_expression "SEXT816(lVar20)" (identifier "SEXT816") (argument_list "(lVar20)" (( "(") (identifier "lVar20") () ")")))) (, ",") (number_literal "8") () ")"))) (+ "+") (identifier "lVar20")) (>> ">>") (number_literal "6")) () ")"))) (- "-") (cast_expression "(int)(lVar20 >> 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar20 >> 0x3f)" (( "(") (binary_expression "lVar20 >> 0x3f" (identifier "lVar20") (>> ">>") (number_literal "0x3f")) () ")")))) () ")"))) (+ "+") (binary_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)) * 0x100" (parenthesized_expression "((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f))" (( "(") (binary_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -\n                   (int)(lVar14 >> 0x3f)" (cast_expression "(int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6)" (( "(") (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6" (binary_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14" (call_expression "SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8)" (identifier "SUB168") (argument_list "(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8)" (( "(") (binary_expression "SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14)" (call_expression "SEXT816(-0x5c28f5c28f5c28f5)" (identifier "SEXT816") (argument_list "(-0x5c28f5c28f5c28f5)" (( "(") (number_literal "-0x5c28f5c28f5c28f5") () ")"))) (* "*") (call_expression "SEXT816(lVar14)" (identifier "SEXT816") (argument_list "(lVar14)" (( "(") (identifier "lVar14") () ")")))) (, ",") (number_literal "8") () ")"))) (+ "+") (identifier "lVar14")) (>> ">>") (number_literal "6")) () ")"))) (- "-") (cast_expression "(int)(lVar14 >> 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar14 >> 0x3f)" (( "(") (binary_expression "lVar14 >> 0x3f" (identifier "lVar14") (>> ">>") (number_literal "0x3f")) () ")")))) () ")")) (* "*") (number_literal "0x100")))) (; ";")) (} "}"))))) (} "}"))) (} "}")) (else_clause "else if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" (else "else") (if_statement "if (bVar1 == 0x24) {\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }\n        else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" (if "if") (parenthesized_expression "(bVar1 == 0x24)" (( "(") (binary_expression "bVar1 == 0x24" (identifier "bVar1") (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" ({ "{") (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" (else "else") (compound_statement "{\n          if (bVar1 != 0x2d) goto LAB_003c9c26;\n          local_4c8 = local_4c8 + 6;\n          local_520 = 1;\n          param_2 = param_2 + 1;\n          iVar3 = 0;\n        }" ({ "{") (if_statement "if (bVar1 != 0x2d) goto LAB_003c9c26;" (if "if") (parenthesized_expression "(bVar1 != 0x2d)" (( "(") (binary_expression "bVar1 != 0x2d" (identifier "bVar1") (!= "!=") (number_literal "0x2d")) () ")")) (goto_statement "goto LAB_003c9c26;" (goto "goto") (statement_identifier "LAB_003c9c26") (; ";"))) (expression_statement "local_4c8 = local_4c8 + 6;" (assignment_expression "local_4c8 = local_4c8 + 6" (identifier "local_4c8") (= "=") (binary_expression "local_4c8 + 6" (identifier "local_4c8") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (goto_statement "goto LAB_003c9c9d;" (goto "goto") (statement_identifier "LAB_003c9c9d") (; ";")) (} "}"))) (expression_statement "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);" (assignment_expression "param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "param_2") (= "=") (cast_expression "(byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003c96bf(param_2 + 1,&local_478,&local_47c)" (identifier "FUN_003c96bf") (argument_list "(param_2 + 1,&local_478,&local_47c)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_478" (& "&") (identifier "local_478")) (, ",") (pointer_expression "&local_47c" (& "&") (identifier "local_47c")) () ")"))))) (; ";")) (if_statement "if (local_47c < 1) goto LAB_003c9c9d;" (if "if") (parenthesized_expression "(local_47c < 1)" (( "(") (binary_expression "local_47c < 1" (identifier "local_47c") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_003c9c9d;" (goto "goto") (statement_identifier "LAB_003c9c9d") (; ";"))) (if_statement "if (((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))\n      goto LAB_003c9c9d;" (if "if") (parenthesized_expression "(((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))" (( "(") (binary_expression "((int)local_478 < 1) ||\n         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1))" (parenthesized_expression "((int)local_478 < 1)" (( "(") (binary_expression "(int)local_478 < 1" (cast_expression "(int)local_478" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_478")) (< "<") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1))" (( "(") (comma_expression "local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)" (assignment_expression "local_520 = (int)local_478" (identifier "local_520") (= "=") (cast_expression "(int)local_478" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_478"))) (, ",") (binary_expression "(long)(int)local_478 <= (long)(~uVar9 - 1)" (cast_expression "(long)(int)local_478" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_478" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_478"))) (<= "<=") (cast_expression "(long)(~uVar9 - 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(~uVar9 - 1)" (( "(") (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" (~ "~") (identifier "uVar9")) (- "-") (number_literal "1")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_003c9c9d;" (goto "goto") (statement_identifier "LAB_003c9c9d") (; ";"))) (labeled_statement "LAB_003ca670:\n      uVar5 = local_4a0 + 1U;" (statement_identifier "LAB_003ca670") (: ":") (expression_statement "uVar5 = local_4a0 + 1U;" (assignment_expression "uVar5 = local_4a0 + 1U" (identifier "uVar5") (= "=") (binary_expression "local_4a0 + 1U" (identifier "local_4a0") (+ "+") (number_literal "1U"))) (; ";"))) (if_statement "if ((int)(local_4a0 + 1U) <= (int)local_518) {\n        uVar5 = local_518;\n      }" (if "if") (parenthesized_expression "((int)(local_4a0 + 1U) <= (int)local_518)" (( "(") (binary_expression "(int)(local_4a0 + 1U) <= (int)local_518" (cast_expression "(int)(local_4a0 + 1U)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_4a0 + 1U)" (( "(") (binary_expression "local_4a0 + 1U" (identifier "local_4a0") (+ "+") (number_literal "1U")) () ")"))) (<= "<=") (cast_expression "(int)local_518" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_518"))) () ")")) (compound_statement "{\n        uVar5 = local_518;\n      }" ({ "{") (expression_statement "uVar5 = local_518;" (assignment_expression "uVar5 = local_518" (identifier "uVar5") (= "=") (identifier "local_518")) (; ";")) (} "}"))) (expression_statement "uVar21 = local_4bc + 1U;" (assignment_expression "uVar21 = local_4bc + 1U" (identifier "uVar21") (= "=") (binary_expression "local_4bc + 1U" (identifier "local_4bc") (+ "+") (number_literal "1U"))) (; ";")) (if_statement "if ((int)(local_4bc + 1U) <= (int)local_514) {\n        uVar21 = local_514;\n      }" (if "if") (parenthesized_expression "((int)(local_4bc + 1U) <= (int)local_514)" (( "(") (binary_expression "(int)(local_4bc + 1U) <= (int)local_514" (cast_expression "(int)(local_4bc + 1U)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_4bc + 1U)" (( "(") (binary_expression "local_4bc + 1U" (identifier "local_4bc") (+ "+") (number_literal "1U")) () ")"))) (<= "<=") (cast_expression "(int)local_514" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_514"))) () ")")) (compound_statement "{\n        uVar21 = local_514;\n      }" ({ "{") (expression_statement "uVar21 = local_514;" (assignment_expression "uVar21 = local_514" (identifier "uVar21") (= "=") (identifier "local_514")) (; ";")) (} "}"))) (if_statement "if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }" (if "if") (parenthesized_expression "(((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19))" (( "(") (binary_expression "((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)" (parenthesized_expression "((int)uVar5 < (int)local_52c)" (( "(") (binary_expression "(int)uVar5 < (int)local_52c" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c"))) () ")")) (|| "||") (parenthesized_expression "((int)uVar21 < (int)uVar19)" (( "(") (binary_expression "(int)uVar21 < (int)uVar19" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")"))) () ")")) (compound_statement "{\n        sVar11 = (size_t)(int)uVar5;\n        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);\n        if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);\n        if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }\n        if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }\n        RelinquishMagickMemory(local_550);\n        local_550 = pvVar7;\n        local_52c = uVar5;\n        uVar19 = uVar21;\n      }" ({ "{") (expression_statement "sVar11 = (size_t)(int)uVar5;" (assignment_expression "sVar11 = (size_t)(int)uVar5" (identifier "sVar11") (= "=") (cast_expression "(size_t)(int)uVar5" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")))) (; ";")) (expression_statement "iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);" (assignment_expression "iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8)" (identifier "iVar3") (= "=") (call_expression "SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8)" (identifier "SetImageExtent") (argument_list "(param_1,sVar11,(long)(int)uVar21,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "sVar11") (, ",") (cast_expression "(long)(int)uVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) (, ",") (identifier "param_8") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" ({ "{") (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c9a8e;" (goto "goto") (statement_identifier "LAB_003c9a8e") (; ";")) (} "}"))) (expression_statement "pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);" (assignment_expression "pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21)" (identifier "pvVar7") (= "=") (cast_expression "(void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(sVar11,(long)(int)uVar21)" (identifier "AcquireQuantumMemory") (argument_list "(sVar11,(long)(int)uVar21)" (( "(") (identifier "sVar11") (, ",") (cast_expression "(long)(int)uVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")"))))) (; ";")) (if_statement "if (pvVar7 == (void *)0x0) {\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" (if "if") (parenthesized_expression "(pvVar7 == (void *)0x0)" (( "(") (binary_expression "pvVar7 == (void *)0x0" (identifier "pvVar7") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          RelinquishMagickMemory(local_550);\n          iVar3 = 0;\n          goto LAB_003c9a8e;\n        }" ({ "{") (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c9a8e;" (goto "goto") (statement_identifier "LAB_003c9a8e") (; ";")) (} "}"))) (if_statement "if (0 < (int)uVar21) {\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n          iVar3 = 0;\n          iVar17 = 0;\n          uVar19 = 0;\n          do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);\n        }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          } while (uVar21 != uVar19);" (do "do") (compound_statement "{\n            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);\n            uVar19 = uVar19 + 1;\n            iVar17 = iVar17 + local_52c;\n            iVar3 = iVar3 + uVar5;\n          }" ({ "{") (expression_statement "memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11);" (call_expression "memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11)" (identifier "memcpy") (argument_list "((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),\n                   sVar11)" (( "(") (cast_expression "(void *)((long)iVar3 + (long)pvVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar3 + (long)pvVar7)" (( "(") (binary_expression "(long)iVar3 + (long)pvVar7" (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3")) (+ "+") (cast_expression "(long)pvVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar7"))) () ")"))) (, ",") (cast_expression "(void *)((long)iVar17 + (long)local_550)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar17 + (long)local_550)" (( "(") (binary_expression "(long)iVar17 + (long)local_550" (cast_expression "(long)iVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar17")) (+ "+") (cast_expression "(long)local_550" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_550"))) () ")"))) (, ",") (identifier "sVar11") () ")"))) (; ";")) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar19 + 1" (identifier "uVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = iVar17 + local_52c;" (assignment_expression "iVar17 = iVar17 + local_52c" (identifier "iVar17") (= "=") (binary_expression "iVar17 + local_52c" (identifier "iVar17") (+ "+") (identifier "local_52c"))) (; ";")) (expression_statement "iVar3 = iVar3 + uVar5;" (assignment_expression "iVar3 = iVar3 + uVar5" (identifier "iVar3") (= "=") (binary_expression "iVar3 + uVar5" (identifier "iVar3") (+ "+") (identifier "uVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 != uVar19)" (( "(") (binary_expression "uVar21 != uVar19" (identifier "uVar21") (!= "!=") (identifier "uVar19")) () ")")) (; ";")) (} "}"))) (expression_statement "RelinquishMagickMemory(local_550);" (call_expression "RelinquishMagickMemory(local_550)" (identifier "RelinquishMagickMemory") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "local_550 = pvVar7;" (assignment_expression "local_550 = pvVar7" (identifier "local_550") (= "=") (identifier "pvVar7")) (; ";")) (expression_statement "local_52c = uVar5;" (assignment_expression "local_52c = uVar5" (identifier "local_52c") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" (identifier "uVar19") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "*param_3 = local_550;" (assignment_expression "*param_3 = local_550" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "local_550")) (; ";")) (expression_statement "*param_4 = (long)(int)local_52c;" (assignment_expression "*param_4 = (long)(int)local_52c" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(long)(int)local_52c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_52c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_52c")))) (; ";")) (expression_statement "*param_5 = (long)(int)uVar19;" (assignment_expression "*param_5 = (long)(int)uVar19" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(long)(int)uVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")))) (; ";")) (expression_statement "*param_7 = (long)(local_4c4 + 1);" (assignment_expression "*param_7 = (long)(local_4c4 + 1)" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (cast_expression "(long)(local_4c4 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_4c4 + 1)" (( "(") (binary_expression "local_4c4 + 1" (identifier "local_4c4") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);" (assignment_expression "lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4)" (identifier "lVar6") (= "=") (call_expression "AcquireQuantumMemory((long)(local_4c4 + 1),4)" (identifier "AcquireQuantumMemory") (argument_list "((long)(local_4c4 + 1),4)" (( "(") (cast_expression "(long)(local_4c4 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_4c4 + 1)" (( "(") (binary_expression "local_4c4 + 1" (identifier "local_4c4") (+ "+") (number_literal "1")) () ")"))) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*param_6 = lVar6;" (assignment_expression "*param_6 = lVar6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar6 != 0) {\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_47c = 0;\n        if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }\n      }" ({ "{") (expression_statement "local_47c = 0;" (assignment_expression "local_47c = 0" (identifier "local_47c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*param_7 < 1) {\n          iVar3 = 1;\n        }\n        else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" (if "if") (parenthesized_expression "(*param_7 < 1)" (( "(") (binary_expression "*param_7 < 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          iVar3 = 1;\n        }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" (else "else") (compound_statement "{\n          do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);\n          iVar3 = 1;\n        }" ({ "{") (do_statement "do {\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          } while ((long)local_47c < *param_7);" (do "do") (compound_statement "{\n            *(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);\n            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);\n            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];\n            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;\n            local_47c = local_47c + 1;\n          }" ({ "{") (expression_statement "*(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);" (assignment_expression "*(char *)(*param_6 + (long)(local_47c * 4)) =\n                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" (pointer_expression "*(char *)(*param_6 + (long)(local_47c * 4))" (* "*") (cast_expression "(char *)(*param_6 + (long)(local_47c * 4))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + (long)(local_47c * 4))" (( "(") (binary_expression "*param_6 + (long)(local_47c * 4)" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (cast_expression "(long)(local_47c * 4)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_47c * 4)" (( "(") (binary_expression "local_47c * 4" (identifier "local_47c") (* "*") (number_literal "4")) () ")")))) () ")")))) (= "=") (cast_expression "(char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" (* "*") (cast_expression "(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&uStack_448 + (long)local_47c * 4 + 2)" (( "(") (binary_expression "(long)&uStack_448 + (long)local_47c * 4 + 2" (binary_expression "(long)&uStack_448 + (long)local_47c * 4" (cast_expression "(long)&uStack_448" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448"))) (+ "+") (binary_expression "(long)local_47c * 4" (cast_expression "(long)local_47c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_47c")) (* "*") (number_literal "4"))) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "*(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8);" (assignment_expression "*(char *)(*param_6 + 1 + (long)(local_47c * 4)) =\n                 (char)((uint)(&uStack_448)[local_47c] >> 8)" (pointer_expression "*(char *)(*param_6 + 1 + (long)(local_47c * 4))" (* "*") (cast_expression "(char *)(*param_6 + 1 + (long)(local_47c * 4))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + 1 + (long)(local_47c * 4))" (( "(") (binary_expression "*param_6 + 1 + (long)(local_47c * 4)" (binary_expression "*param_6 + 1" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "1")) (+ "+") (cast_expression "(long)(local_47c * 4)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_47c * 4)" (( "(") (binary_expression "local_47c * 4" (identifier "local_47c") (* "*") (number_literal "4")) () ")")))) () ")")))) (= "=") (cast_expression "(char)((uint)(&uStack_448)[local_47c] >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(&uStack_448)[local_47c] >> 8)" (( "(") (binary_expression "(uint)(&uStack_448)[local_47c] >> 8" (subscript_expression "(uint)(&uStack_448)[local_47c]" (call_expression "(uint)(&uStack_448)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(&uStack_448)" (( "(") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448")) () ")"))) ([ "[") (identifier "local_47c") (] "]")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];" (assignment_expression "*(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c]" (pointer_expression "*(char *)(*param_6 + 2 + (long)(local_47c * 4))" (* "*") (cast_expression "(char *)(*param_6 + 2 + (long)(local_47c * 4))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + 2 + (long)(local_47c * 4))" (( "(") (binary_expression "*param_6 + 2 + (long)(local_47c * 4)" (binary_expression "*param_6 + 2" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "2")) (+ "+") (cast_expression "(long)(local_47c * 4)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_47c * 4)" (( "(") (binary_expression "local_47c * 4" (identifier "local_47c") (* "*") (number_literal "4")) () ")")))) () ")")))) (= "=") (cast_expression "(char)(&uStack_448)[local_47c]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "(&uStack_448)[local_47c]" (parenthesized_expression "(&uStack_448)" (( "(") (pointer_expression "&uStack_448" (& "&") (identifier "uStack_448")) () ")")) ([ "[") (identifier "local_47c") (] "]")))) (; ";")) (expression_statement "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;" (assignment_expression "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff" (pointer_expression "*(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2))" (* "*") (cast_expression "(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + 3 + (long)(local_47c << 2))" (( "(") (binary_expression "*param_6 + 3 + (long)(local_47c << 2)" (binary_expression "*param_6 + 3" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "3")) (+ "+") (cast_expression "(long)(local_47c << 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_47c << 2)" (( "(") (binary_expression "local_47c << 2" (identifier "local_47c") (<< "<<") (number_literal "2")) () ")")))) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "local_47c = local_47c + 1;" (assignment_expression "local_47c = local_47c + 1" (identifier "local_47c") (= "=") (binary_expression "local_47c + 1" (identifier "local_47c") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long)local_47c < *param_7)" (( "(") (binary_expression "(long)local_47c < *param_7" (cast_expression "(long)local_47c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_47c")) (< "<") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) () ")")) (; ";")) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_003c9a8e:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" (statement_identifier "LAB_003c9a8e") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar3;\n  }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

type_1
function_1(type_2 *image,type_3 *var_19,type_3 **pixels,size_t *pwidth,size_t *pheight,type_3 **palette,
            size_t *ncolors,type_4 *exception)

{
  type_5 *pbVar1;
  type_3 var_4;
  type_5 var_18;
  long var_46;
  type_6 var_39;
  type_1 var_6;
  int var_13;
  type_6 var_24;
  long var_10;
  type_3 *var_3;
  type_7 var_36;
  long var_40;
  type_7 var_2;
  int var_12;
  size_t var_41;
  int var_14;
  long var_45;
  type_7 var_35;
  int var_15;
  int var_11;
  int var_16;
  type_6 var_30;
  size_t var_27;
  type_6 var_32;
  size_t var_28;
  type_6 var_25;
  long var_1;
  bool bVar26;
  type_3 *var_9;
  type_6 var_31;
  int var_22;
  int var_34;
  type_6 local_518;
  type_6 local_514;
  int var_23;
  int var_33;
  int var_38;
  int var_37;
  int var_21;
  int param [10];
  int sixel_palet [256];
  
  var_46 = *(long *)(var_1 + 0x28);
  param[0] = 0;
  param[1] = 0;
  param[2] = 0;
  param[3] = 0;
  param[4] = 0;
  param[5] = 0;
  param[6] = 0;
  param[7] = 0;
  param[8] = 0;
  param[9] = 0;
  var_2 = 0xffffffffffffffff;
  var_3 = var_19;
  do {
    if (var_2 == 0) break;
    var_2 = var_2 - 1;
    var_4 = *var_3;
    var_3 = var_3 + 1;
  } while (var_4 != '\0');
  var_6 = var_5(image,0x800,0x800,exception);
  if (var_6 != var_7) {
    var_9 = (type_3 *)var_8(0x800,0x800);
    var_6 = var_7;
    if (var_9 != (type_3 *)0x0) {
      var_10 = 0;
      do {
        *(type_8 *)((long)sixel_palet + var_10) =
             *(type_8 *)((long)sixel_default_color_table + var_10);
        var_10 = var_10 + 4;
      } while (var_10 != 0x40);
      var_16 = 0;
      var_11 = 0x34;
      do {
        var_15 = var_11 + -0x24;
        var_14 = var_16;
        do {
          var_13 = var_14;
          var_12 = var_15;
          do {
            sixel_palet[var_12] = var_13;
            var_12 = var_12 + 1;
            var_13 = var_13 + 0x33;
          } while (var_13 != var_14 + 0x132);
          var_15 = var_15 + 6;
          var_14 = var_14 + 0x3300;
        } while (var_15 != var_11);
        var_11 = var_11 + 0x24;
        var_16 = var_16 + 0x330000;
      } while (var_16 != 0x1320000);
      var_11 = 0;
      var_16 = 0xe8;
      do {
        sixel_palet[var_16] = var_11;
        var_16 = var_16 + 1;
        var_11 = var_11 + 0xb0b0b;
      } while (var_11 != 0x1090908);
      var_21 = 0x100;
      var_17(var_9,0,0x400000);
      var_31 = 0x800;
      var_33 = 2;
      var_34 = 0;
      var_22 = 1;
      local_514 = 0;
      local_518 = 0;
      var_38 = 0;
      var_37 = 0;
      var_23 = 0;
      var_11 = 0;
      var_32 = 0x800;
LAB_003c9c9d:
      while( true ) {
        var_18 = *var_19;
        if (var_18 == 0) goto LAB_003ca670;
        if (var_18 != 0x1b) break;
        if (var_19[1] == 0x50) {
          var_19 = var_19 + 1;
LAB_003c9c82:
          var_19 = var_20(var_19 + 1,param,&var_21);
          if (((*var_19 == 0x71) && (var_19 = var_19 + 1, 2 < var_21)) && (param[2] == 0)) {
            param[2] = 10;
          }
        }
        else {
          if (var_19[1] == 0x5c) goto LAB_003ca670;
LAB_003c9c26:
          if ((type_5)(var_18 - 0x3f) < 0x41) {
            var_16 = var_11 + var_22;
            var_24 = var_32;
            if (((int)var_31 < var_16) || ((int)var_32 < var_23 + 6)) {
              var_25 = var_31;
              do {
                do {
                  var_24 = var_24 * 2;
                  var_25 = var_25 * 2;
                } while ((int)var_25 < var_16);
              } while ((int)var_24 < var_23 + 6);
              var_27 = (size_t)(int)var_24;
              var_28 = (size_t)(int)var_25;
              var_6 = var_5(image,var_28,var_27,exception);
              if (var_6 == var_7) goto LAB_003ca670;
              var_3 = (type_3 *)var_8(var_28,var_27);
              if (var_3 == (type_3 *)0x0) {
                var_26(var_9);
                var_6 = var_7;
                goto LAB_003c9a8e;
              }
              var_17(var_3,0,var_27 * var_28);
              if (0 < (int)var_32) {
                var_15 = 0;
                var_14 = 0;
                var_30 = 0;
                do {
                  var_29(var_3 + var_15,var_9 + var_14,(long)(int)var_31);
                  var_30 = var_30 + 1;
                  var_14 = var_14 + var_31;
                  var_15 = var_15 + var_25;
                } while (var_32 != var_30);
              }
              var_26(var_9);
              var_9 = var_3;
              var_31 = var_25;
            }
            if (var_33 < var_34) {
              var_33 = var_34;
            }
            pbVar1 = var_19 + 1;
            var_25 = *var_19 - 0x3f;
            var_19 = pbVar1;
            var_32 = var_24;
            if (var_25 == 0) {
              var_22 = 1;
              var_11 = var_16;
            }
            else if (var_22 < 2) {
              var_35 = (long)(int)var_24 * (long)(int)var_31;
              var_10 = 0;
              var_24 = 1;
              do {
                if ((var_25 & var_24) != 0) {
                  var_16 = var_23 + (int)var_10;
                  var_36 = (long)var_16 * (long)(int)var_31 + (long)var_11;
                  if (var_35 < var_36 || var_35 - var_36 == 0) {
                    var_26(var_9);
                    var_6 = var_7;
                    goto LAB_003c9a8e;
                  }
                  var_9[var_36] = (type_3)var_34;
                  if (var_37 < var_11) {
                    var_37 = var_11;
                  }
                  if (var_38 < var_16) {
                    var_38 = var_16;
                  }
                }
                var_24 = var_24 * 2;
                var_10 = var_10 + 1;
              } while (var_10 != 6);
              var_22 = 1;
              var_11 = var_11 + 1;
            }
            else {
              var_10 = (long)(int)var_31;
              var_30 = 1;
              var_14 = 0;
              var_41 = (size_t)var_22;
              do {
                if ((var_30 & var_25) != 0) {
                  var_21 = 1;
                  if (var_14 + 1 < 6) {
                    var_39 = var_30;
                    for (var_15 = 2;
                        (var_39 = var_39 * 2, (var_25 & var_39) != 0 &&
                        (var_21 = var_15, 6 - var_14 != var_15)); var_15 = var_15 + 1) {
                    }
                  }
                  var_13 = var_21;
                  var_15 = var_23 + var_14;
                  var_12 = var_15 + var_21;
                  if (var_15 < var_12) {
                    var_40 = var_15 * var_10 + (long)var_11;
                    if ((type_7)((int)var_24 * var_10) <= var_40 + var_41) {
LAB_003ca553:
                      var_26(var_9);
                      var_6 = var_7;
                      goto LAB_003c9a8e;
                    }
                    var_35 = (var_15 + 1) * var_10 + (long)var_11 + var_41;
                    while( true ) {
                      var_17(var_9 + var_40,var_34,var_41);
                      var_15 = var_15 + 1;
                      if (var_15 == var_12) break;
                      var_40 = var_35 - var_41;
                      bVar26 = (type_7)((int)var_24 * var_10) <= var_35;
                      var_35 = var_35 + var_10;
                      if (bVar26) goto LAB_003ca553;
                    }
                  }
                  if (var_37 < var_16 + -1) {
                    var_37 = var_16 + -1;
                  }
                  var_15 = var_12 + -1;
                  if (var_12 + -1 <= var_38) {
                    var_15 = var_38;
                  }
                  var_14 = var_14 + var_13 + -1;
                  var_30 = var_30 << ((type_5)(var_13 + -1) & 0x1f);
                  var_38 = var_15;
                }
                var_30 = var_30 << 1;
                var_14 = var_14 + 1;
              } while (var_14 < 6);
              var_22 = 1;
              var_11 = var_16;
            }
          }
          else {
            var_19 = var_19 + 1;
          }
        }
      }
      if (var_18 == 0x90) goto LAB_003c9c82;
      if (var_18 == 0x9c) goto LAB_003ca670;
      if (var_18 == 0x22) {
        var_19 = var_20(var_19 + 1,param,&var_21);
        var_24 = local_518;
        if ((2 < var_21) && (var_24 = param[2] & 0xffff, param[2] < 1)) {
          var_24 = local_518;
        }
        local_518 = var_24;
        var_24 = local_514;
        if ((3 < var_21) && (var_24 = param[3] & 0xffff, param[3] < 1)) {
          var_24 = local_514;
        }
        local_514 = var_24;
        if (((int)var_31 < (int)local_518) || ((int)var_32 < (int)local_514)) {
          var_24 = var_31;
          if ((int)var_31 <= (int)local_518) {
            var_24 = local_518;
          }
          var_25 = var_32;
          if ((int)var_32 <= (int)local_514) {
            var_25 = local_514;
          }
          var_27 = (size_t)(int)var_25;
          var_28 = (size_t)(int)var_24;
          var_6 = var_5(image,var_28,var_27,exception);
          if (var_6 == var_7) goto LAB_003ca670;
          var_3 = (type_3 *)var_8(var_28,var_27);
          if (var_3 == (type_3 *)0x0) {
            var_26(var_9);
            var_6 = var_7;
            goto LAB_003c9a8e;
          }
          var_17(var_3,0,var_27 * var_28);
          if (0 < (int)var_32) {
            var_14 = 0;
            var_16 = 0;
            var_30 = 0;
            do {
              var_29(var_3 + var_14,var_9 + var_16,(long)(int)var_31);
              var_30 = var_30 + 1;
              var_16 = var_16 + var_31;
              var_14 = var_14 + var_24;
            } while (var_32 != var_30);
          }
          var_26(var_9);
          var_9 = var_3;
          var_31 = var_24;
          var_32 = var_25;
        }
        goto LAB_003c9c9d;
      }
      if (var_18 != 0x21) {
        if (var_18 == 0x23) {
          var_19 = var_20(var_19 + 1,param,&var_21);
          if (0 < var_21) {
            var_16 = 0xff;
            if (param[0] < 0x100) {
              var_16 = param[0];
            }
            var_34 = 0;
            if (-1 < var_16) {
              var_34 = var_16;
            }
          }
          if (4 < var_21) {
            if (param[1] == 1) {
              if (0x168 < param[2]) {
                param[2] = 0x168;
              }
              if (100 < param[3]) {
                param[3] = 100;
              }
              if (param[4] < 0x65) {
                if (param[4] != 0) {
                  var_16 = (int)(((long)param[2] * 100) / 0x168);
                  var_14 = param[4];
                  goto LAB_003ca0ae;
                }
                var_14 = (param[3] * 0xff) / 100;
                var_15 = var_14;
                var_16 = var_14;
              }
              else {
                param[4] = 100;
                var_16 = (int)(((long)param[2] * 100) / 0x168);
                var_14 = 100;
LAB_003ca0ae:
                if (param[3] < 0x33) {
                  var_10 = (long)(var_14 + 100) * (long)param[3] + 0x32;
                  var_15 = (int)(var_42(var_43(-0x5c28f5c28f5c28f5) * var_43(var_10),8) + var_10 >>
                                6) - (int)(var_10 >> 0x3f);
                }
                else {
                  var_10 = (long)var_14 * (long)param[3] + 0x32;
                  var_15 = (param[3] + var_14) -
                           ((int)(var_42(var_43(-0x5c28f5c28f5c28f5) * var_43(var_10),8) + var_10 >>
                                 6) - (int)(var_10 >> 0x3f));
                }
                var_12 = param[3] * 2 - var_15;
                var_14 = var_44(var_12,var_15,var_16 + 0x21);
                var_14 = (var_14 * 0xff + 0x32) / 100;
                var_13 = var_44(var_12,var_15,var_16);
                var_16 = var_44(var_12,var_15,var_16 + -0x21);
                var_15 = (var_16 * 0xff + 0x32) / 100;
                var_16 = (var_13 * 0xff + 0x32) / 100;
              }
              sixel_palet[var_34] = var_14 * 0x10000 + var_16 * 0x100 + var_15;
            }
            else if (param[1] == 2) {
              if (100 < param[2]) {
                param[2] = 100;
              }
              if (100 < param[3]) {
                param[3] = 100;
              }
              if (100 < param[4]) {
                param[4] = 100;
              }
              var_10 = (long)param[2] * 0xff + 0x32;
              var_40 = (long)param[4] * 0xff + 0x32;
              var_45 = (long)param[3] * 0xff + 0x32;
              sixel_palet[var_34] =
                   ((int)(var_42(var_43(-0x5c28f5c28f5c28f5) * var_43(var_10),8) + var_10 >> 6) -
                   (int)(var_10 >> 0x3f)) * 0x10000 +
                   ((int)(var_42(var_43(-0x5c28f5c28f5c28f5) * var_43(var_40),8) + var_40 >> 6) -
                   (int)(var_40 >> 0x3f)) +
                   ((int)(var_42(var_43(-0x5c28f5c28f5c28f5) * var_43(var_45),8) + var_45 >> 6) -
                   (int)(var_45 >> 0x3f)) * 0x100;
            }
          }
        }
        else if (var_18 == 0x24) {
          var_22 = 1;
          var_19 = var_19 + 1;
          var_11 = 0;
        }
        else {
          if (var_18 != 0x2d) goto LAB_003c9c26;
          var_23 = var_23 + 6;
          var_22 = 1;
          var_19 = var_19 + 1;
          var_11 = 0;
        }
        goto LAB_003c9c9d;
      }
      var_19 = var_20(var_19 + 1,param,&var_21);
      if (var_21 < 1) goto LAB_003c9c9d;
      if ((param[0] < 1) || (var_22 = param[0], (long)param[0] <= (long)(~var_2 - 1)))
      goto LAB_003c9c9d;
LAB_003ca670:
      var_24 = var_37 + 1U;
      if ((int)(var_37 + 1U) <= (int)local_518) {
        var_24 = local_518;
      }
      var_25 = var_38 + 1U;
      if ((int)(var_38 + 1U) <= (int)local_514) {
        var_25 = local_514;
      }
      if (((int)var_24 < (int)var_31) || ((int)var_25 < (int)var_32)) {
        var_27 = (size_t)(int)var_24;
        var_6 = var_5(image,var_27,(long)(int)var_25,exception);
        if (var_6 == var_7) {
          var_26(var_9);
          var_6 = var_7;
          goto LAB_003c9a8e;
        }
        var_3 = (type_3 *)var_8(var_27,(long)(int)var_25);
        if (var_3 == (type_3 *)0x0) {
          var_26(var_9);
          var_6 = var_7;
          goto LAB_003c9a8e;
        }
        if (0 < (int)var_25) {
          var_11 = 0;
          var_16 = 0;
          var_32 = 0;
          do {
            var_29(var_3 + var_11,var_9 + var_16,var_27);
            var_32 = var_32 + 1;
            var_16 = var_16 + var_31;
            var_11 = var_11 + var_24;
          } while (var_25 != var_32);
        }
        var_26(var_9);
        var_9 = var_3;
        var_31 = var_24;
        var_32 = var_25;
      }
      *pixels = var_9;
      *pwidth = (long)(int)var_31;
      *pheight = (long)(int)var_32;
      *ncolors = (long)(var_33 + 1);
      var_3 = (type_3 *)var_8((long)(var_33 + 1),4);
      *palette = var_3;
      var_6 = var_7;
      if (var_3 != (type_3 *)0x0) {
        var_21 = 0;
        if ((long)*ncolors < 1) {
          var_6 = MagickTrue;
        }
        else {
          do {
            (*palette)[var_21 * 4] = (type_3)*(type_9 *)((long)sixel_palet + (long)var_21 * 4 + 2);
            (*palette)[(long)(var_21 * 4) + 1] = (type_3)((type_6)sixel_palet[var_21] >> 8);
            (*palette)[(long)(var_21 * 4) + 2] = (type_3)sixel_palet[var_21];
            (*palette)[(long)(var_21 << 2) + 3] = 0xff;
            var_21 = var_21 + 1;
          } while ((long)var_21 < (long)*ncolors);
          var_6 = MagickTrue;
        }
      }
    }
  }
LAB_003c9a8e:
  if (var_46 == *(long *)(var_1 + 0x28)) {
    return var_6;
  }
                    /* WARNING: Subroutine does not return */
  var_47();
}


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

int MASKED(undefined8 param_1,byte *param_2,undefined8 *param_3,long *param_4,long *param_5,
                long *param_6,long *param_7,undefined8 param_8)

{
  byte bVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  long lVar6;
  void *pvVar7;
  ulong uVar8;
  ulong uVar9;
  int iVar10;
  size_t sVar11;
  int iVar12;
  byte *pbVar13;
  long lVar14;
  ulong uVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  long lVar20;
  uint uVar21;
  long in_FS_OFFSET;
  bool bVar22;
  void *local_550;
  uint local_52c;
  int local_520;
  int local_51c;
  uint local_518;
  uint local_514;
  int local_4c8;
  int local_4c4;
  int local_4bc;
  int local_4a0;
  int local_47c;
  undefined8 local_478;
  uint local_470;
  uint uStack_46c;
  undefined8 local_468;
  undefined8 local_460;
  undefined8 local_458;
  undefined4 uStack_448;
  int aiStack_a8 [26];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_478 = 0;
  local_470 = 0;
  uStack_46c = 0;
  local_468 = 0;
  local_460 = 0;
  local_458 = 0;
  uVar9 = 0xffffffffffffffff;
  pbVar13 = param_2;
  do {
    if (uVar9 == 0) break;
    uVar9 = uVar9 - 1;
    bVar1 = *pbVar13;
    pbVar13 = pbVar13 + 1;
  } while (bVar1 != 0);
  iVar3 = SetImageExtent(param_1,0x800,0x800,param_8);
  if (iVar3 != 0) {
    local_550 = (void *)AcquireQuantumMemory(0x800,0x800);
    iVar3 = 0;
    if (local_550 != (void *)0x0) {
      lVar6 = 0;
      do {
        *(undefined4 *)((long)&uStack_448 + lVar6) = *(undefined4 *)((long)&DAT_0047bf80 + lVar6);
        lVar6 = lVar6 + 4;
      } while (lVar6 != 0x40);
      iVar17 = 0;
      iVar3 = 0x34;
      do {
        iVar16 = iVar3 + -0x24;
        iVar12 = iVar17;
        do {
          iVar4 = iVar12;
          iVar10 = iVar16;
          do {
            (&uStack_448)[iVar10] = iVar4;
            iVar10 = iVar10 + 1;
            iVar4 = iVar4 + 0x33;
          } while (iVar4 != iVar12 + 0x132);
          iVar16 = iVar16 + 6;
          iVar12 = iVar12 + 0x3300;
        } while (iVar16 != iVar3);
        iVar3 = iVar3 + 0x24;
        iVar17 = iVar17 + 0x330000;
      } while (iVar17 != 0x1320000);
      iVar3 = 0;
      iVar17 = 0xe8;
      do {
        (&uStack_448)[iVar17] = iVar3;
        iVar17 = iVar17 + 1;
        iVar3 = iVar3 + 0xb0b0b;
      } while (iVar3 != 0x1090908);
      local_47c = 0x100;
      memset(local_550,0,0x400000);
      local_52c = 0x800;
      local_4c4 = 2;
      local_51c = 0;
      local_520 = 1;
      local_514 = 0;
      local_518 = 0;
      local_4bc = 0;
      local_4a0 = 0;
      local_4c8 = 0;
      iVar3 = 0;
      uVar19 = 0x800;
LAB_003c9c9d:
      while( true ) {
        bVar1 = *param_2;
        if (bVar1 == 0) goto LAB_003ca670;
        if (bVar1 != 0x1b) break;
        if (param_2[1] == 0x50) {
          param_2 = param_2 + 1;
LAB_003c9c82:
          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
          if (((*param_2 == 0x71) && (param_2 = param_2 + 1, 2 < local_47c)) && (local_470 == 0)) {
            local_470 = 10;
          }
        }
        else {
          if (param_2[1] == 0x5c) goto LAB_003ca670;
LAB_003c9c26:
          if ((byte)(bVar1 - 0x3f) < 0x41) {
            iVar17 = iVar3 + local_520;
            uVar5 = uVar19;
            if (((int)local_52c < iVar17) || ((int)uVar19 < local_4c8 + 6)) {
              uVar21 = local_52c;
              do {
                do {
                  uVar5 = uVar5 * 2;
                  uVar21 = uVar21 * 2;
                } while ((int)uVar21 < iVar17);
              } while ((int)uVar5 < local_4c8 + 6);
              lVar6 = (long)(int)uVar5;
              lVar20 = (long)(int)uVar21;
              iVar12 = SetImageExtent(param_1,lVar20,lVar6,param_8);
              if (iVar12 == 0) goto LAB_003ca670;
              pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);
              if (pvVar7 == (void *)0x0) {
                RelinquishMagickMemory(local_550);
                iVar3 = 0;
                goto LAB_003c9a8e;
              }
              memset(pvVar7,0,lVar6 * lVar20);
              if (0 < (int)uVar19) {
                iVar16 = 0;
                iVar12 = 0;
                uVar18 = 0;
                do {
                  memcpy((void *)((long)iVar16 + (long)pvVar7),
                         (void *)((long)iVar12 + (long)local_550),(long)(int)local_52c);
                  uVar18 = uVar18 + 1;
                  iVar12 = iVar12 + local_52c;
                  iVar16 = iVar16 + uVar21;
                } while (uVar19 != uVar18);
              }
              RelinquishMagickMemory(local_550);
              local_550 = pvVar7;
              local_52c = uVar21;
            }
            if (local_4c4 < local_51c) {
              local_4c4 = local_51c;
            }
            pbVar13 = param_2 + 1;
            uVar21 = *param_2 - 0x3f;
            param_2 = pbVar13;
            uVar19 = uVar5;
            if (uVar21 == 0) {
              local_520 = 1;
              iVar3 = iVar17;
            }
            else if (local_520 < 2) {
              uVar15 = (long)(int)uVar5 * (long)(int)local_52c;
              lVar6 = 0;
              uVar5 = 1;
              do {
                if ((uVar21 & uVar5) != 0) {
                  iVar17 = local_4c8 + (int)lVar6;
                  uVar8 = (long)iVar17 * (long)(int)local_52c + (long)iVar3;
                  if (uVar15 < uVar8 || uVar15 - uVar8 == 0) {
                    RelinquishMagickMemory(local_550);
                    iVar3 = 0;
                    goto LAB_003c9a8e;
                  }
                  *(undefined1 *)((long)local_550 + uVar8) = (undefined1)local_51c;
                  if (local_4a0 < iVar3) {
                    local_4a0 = iVar3;
                  }
                  if (local_4bc < iVar17) {
                    local_4bc = iVar17;
                  }
                }
                uVar5 = uVar5 * 2;
                lVar6 = lVar6 + 1;
              } while (lVar6 != 6);
              local_520 = 1;
              iVar3 = iVar3 + 1;
            }
            else {
              lVar6 = (long)(int)local_52c;
              uVar18 = 1;
              iVar12 = 0;
              sVar11 = (size_t)local_520;
              do {
                if ((uVar18 & uVar21) != 0) {
                  local_47c = 1;
                  if (iVar12 + 1 < 6) {
                    uVar2 = uVar18;
                    for (iVar16 = 2;
                        (uVar2 = uVar2 * 2, (uVar21 & uVar2) != 0 &&
                        (local_47c = iVar16, 6 - iVar12 != iVar16)); iVar16 = iVar16 + 1) {
                    }
                  }
                  iVar4 = local_47c;
                  iVar16 = local_4c8 + iVar12;
                  iVar10 = iVar16 + local_47c;
                  if (iVar16 < iVar10) {
                    lVar20 = iVar16 * lVar6 + (long)iVar3;
                    if ((ulong)((int)uVar5 * lVar6) <= lVar20 + sVar11) {
LAB_003ca553:
                      RelinquishMagickMemory(local_550);
                      iVar3 = 0;
                      goto LAB_003c9a8e;
                    }
                    uVar15 = (iVar16 + 1) * lVar6 + (long)iVar3 + sVar11;
                    while( true ) {
                      memset((void *)((long)local_550 + lVar20),local_51c,sVar11);
                      iVar16 = iVar16 + 1;
                      if (iVar16 == iVar10) break;
                      lVar20 = uVar15 - sVar11;
                      bVar22 = (ulong)((int)uVar5 * lVar6) <= uVar15;
                      uVar15 = uVar15 + lVar6;
                      if (bVar22) goto LAB_003ca553;
                    }
                  }
                  if (local_4a0 < iVar17 + -1) {
                    local_4a0 = iVar17 + -1;
                  }
                  iVar16 = iVar10 + -1;
                  if (iVar10 + -1 <= local_4bc) {
                    iVar16 = local_4bc;
                  }
                  iVar12 = iVar12 + iVar4 + -1;
                  uVar18 = uVar18 << ((byte)(iVar4 + -1) & 0x1f);
                  local_4bc = iVar16;
                }
                uVar18 = uVar18 << 1;
                iVar12 = iVar12 + 1;
              } while (iVar12 < 6);
              local_520 = 1;
              iVar3 = iVar17;
            }
          }
          else {
            param_2 = param_2 + 1;
          }
        }
      }
      if (bVar1 == 0x90) goto LAB_003c9c82;
      if (bVar1 == 0x9c) goto LAB_003ca670;
      if (bVar1 == 0x22) {
        param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
        uVar5 = local_518;
        if ((2 < local_47c) && (uVar5 = local_470 & 0xffff, (int)local_470 < 1)) {
          uVar5 = local_518;
        }
        local_518 = uVar5;
        uVar5 = local_514;
        if ((3 < local_47c) && (uVar5 = uStack_46c & 0xffff, (int)uStack_46c < 1)) {
          uVar5 = local_514;
        }
        local_514 = uVar5;
        if (((int)local_52c < (int)local_518) || ((int)uVar19 < (int)local_514)) {
          uVar5 = local_52c;
          if ((int)local_52c <= (int)local_518) {
            uVar5 = local_518;
          }
          uVar21 = uVar19;
          if ((int)uVar19 <= (int)local_514) {
            uVar21 = local_514;
          }
          lVar6 = (long)(int)uVar21;
          lVar20 = (long)(int)uVar5;
          iVar17 = SetImageExtent(param_1,lVar20,lVar6,param_8);
          if (iVar17 == 0) goto LAB_003ca670;
          pvVar7 = (void *)AcquireQuantumMemory(lVar20,lVar6);
          if (pvVar7 == (void *)0x0) {
            RelinquishMagickMemory(local_550);
            iVar3 = 0;
            goto LAB_003c9a8e;
          }
          memset(pvVar7,0,lVar6 * lVar20);
          if (0 < (int)uVar19) {
            iVar12 = 0;
            iVar17 = 0;
            uVar18 = 0;
            do {
              memcpy((void *)((long)iVar12 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),
                     (long)(int)local_52c);
              uVar18 = uVar18 + 1;
              iVar17 = iVar17 + local_52c;
              iVar12 = iVar12 + uVar5;
            } while (uVar19 != uVar18);
          }
          RelinquishMagickMemory(local_550);
          local_550 = pvVar7;
          local_52c = uVar5;
          uVar19 = uVar21;
        }
        goto LAB_003c9c9d;
      }
      if (bVar1 != 0x21) {
        if (bVar1 == 0x23) {
          param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
          if (0 < local_47c) {
            iVar17 = 0xff;
            if ((int)local_478 < 0x100) {
              iVar17 = (int)local_478;
            }
            local_51c = 0;
            if (-1 < iVar17) {
              local_51c = iVar17;
            }
          }
          if (4 < local_47c) {
            if (local_478._4_4_ == 1) {
              if (0x168 < (int)local_470) {
                local_470 = 0x168;
              }
              if (100 < (int)uStack_46c) {
                uStack_46c = 100;
              }
              if ((int)local_468 < 0x65) {
                if ((int)local_468 != 0) {
                  iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);
                  iVar12 = (int)local_468;
                  goto LAB_003ca0ae;
                }
                iVar12 = (int)(uStack_46c * 0xff) / 100;
                iVar16 = iVar12;
                iVar17 = iVar12;
              }
              else {
                local_468 = CONCAT44(local_468._4_4_,100);
                iVar17 = (int)(((long)(int)local_470 * 100) / 0x168);
                iVar12 = 100;
LAB_003ca0ae:
                if ((int)uStack_46c < 0x33) {
                  lVar6 = (long)(iVar12 + 100) * (long)(int)uStack_46c + 0x32;
                  iVar16 = (int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>
                                6) - (int)(lVar6 >> 0x3f);
                }
                else {
                  lVar6 = (long)iVar12 * (long)(int)uStack_46c + 0x32;
                  iVar16 = (uStack_46c + iVar12) -
                           ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >>
                                 6) - (int)(lVar6 >> 0x3f));
                }
                iVar10 = uStack_46c * 2 - iVar16;
                iVar12 = FUN_003c9609(iVar10,iVar16,iVar17 + 0x21);
                iVar12 = (iVar12 * 0xff + 0x32) / 100;
                iVar4 = FUN_003c9609(iVar10,iVar16,iVar17);
                iVar17 = FUN_003c9609(iVar10,iVar16,iVar17 + -0x21);
                iVar16 = (iVar17 * 0xff + 0x32) / 100;
                iVar17 = (iVar4 * 0xff + 0x32) / 100;
              }
              (&uStack_448)[local_51c] = iVar12 * 0x10000 + iVar17 * 0x100 + iVar16;
            }
            else if (local_478._4_4_ == 2) {
              if (100 < (int)local_470) {
                local_470 = 100;
              }
              if (100 < (int)uStack_46c) {
                uStack_46c = 100;
              }
              if (100 < (int)local_468) {
                local_468 = CONCAT44(local_468._4_4_,100);
              }
              lVar6 = (long)(int)local_470 * 0xff + 0x32;
              lVar20 = (long)(int)local_468 * 0xff + 0x32;
              lVar14 = (long)(int)uStack_46c * 0xff + 0x32;
              (&uStack_448)[local_51c] =
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar6),8) + lVar6 >> 6) -
                   (int)(lVar6 >> 0x3f)) * 0x10000 +
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar20),8) + lVar20 >> 6) -
                   (int)(lVar20 >> 0x3f)) +
                   ((int)(SUB168(SEXT816(-0x5c28f5c28f5c28f5) * SEXT816(lVar14),8) + lVar14 >> 6) -
                   (int)(lVar14 >> 0x3f)) * 0x100;
            }
          }
        }
        else if (bVar1 == 0x24) {
          local_520 = 1;
          param_2 = param_2 + 1;
          iVar3 = 0;
        }
        else {
          if (bVar1 != 0x2d) goto LAB_003c9c26;
          local_4c8 = local_4c8 + 6;
          local_520 = 1;
          param_2 = param_2 + 1;
          iVar3 = 0;
        }
        goto LAB_003c9c9d;
      }
      param_2 = (byte *)FUN_003c96bf(param_2 + 1,&local_478,&local_47c);
      if (local_47c < 1) goto LAB_003c9c9d;
      if (((int)local_478 < 1) ||
         (local_520 = (int)local_478, (long)(int)local_478 <= (long)(~uVar9 - 1)))
      goto LAB_003c9c9d;
LAB_003ca670:
      uVar5 = local_4a0 + 1U;
      if ((int)(local_4a0 + 1U) <= (int)local_518) {
        uVar5 = local_518;
      }
      uVar21 = local_4bc + 1U;
      if ((int)(local_4bc + 1U) <= (int)local_514) {
        uVar21 = local_514;
      }
      if (((int)uVar5 < (int)local_52c) || ((int)uVar21 < (int)uVar19)) {
        sVar11 = (size_t)(int)uVar5;
        iVar3 = SetImageExtent(param_1,sVar11,(long)(int)uVar21,param_8);
        if (iVar3 == 0) {
          RelinquishMagickMemory(local_550);
          iVar3 = 0;
          goto LAB_003c9a8e;
        }
        pvVar7 = (void *)AcquireQuantumMemory(sVar11,(long)(int)uVar21);
        if (pvVar7 == (void *)0x0) {
          RelinquishMagickMemory(local_550);
          iVar3 = 0;
          goto LAB_003c9a8e;
        }
        if (0 < (int)uVar21) {
          iVar3 = 0;
          iVar17 = 0;
          uVar19 = 0;
          do {
            memcpy((void *)((long)iVar3 + (long)pvVar7),(void *)((long)iVar17 + (long)local_550),
                   sVar11);
            uVar19 = uVar19 + 1;
            iVar17 = iVar17 + local_52c;
            iVar3 = iVar3 + uVar5;
          } while (uVar21 != uVar19);
        }
        RelinquishMagickMemory(local_550);
        local_550 = pvVar7;
        local_52c = uVar5;
        uVar19 = uVar21;
      }
      *param_3 = local_550;
      *param_4 = (long)(int)local_52c;
      *param_5 = (long)(int)uVar19;
      *param_7 = (long)(local_4c4 + 1);
      lVar6 = AcquireQuantumMemory((long)(local_4c4 + 1),4);
      *param_6 = lVar6;
      iVar3 = 0;
      if (lVar6 != 0) {
        local_47c = 0;
        if (*param_7 < 1) {
          iVar3 = 1;
        }
        else {
          do {
            *(char *)(*param_6 + (long)(local_47c * 4)) =
                 (char)*(undefined2 *)((long)&uStack_448 + (long)local_47c * 4 + 2);
            *(char *)(*param_6 + 1 + (long)(local_47c * 4)) =
                 (char)((uint)(&uStack_448)[local_47c] >> 8);
            *(char *)(*param_6 + 2 + (long)(local_47c * 4)) = (char)(&uStack_448)[local_47c];
            *(undefined1 *)(*param_6 + 3 + (long)(local_47c << 2)) = 0xff;
            local_47c = local_47c + 1;
          } while ((long)local_47c < *param_7);
          iVar3 = 1;
        }
      }
    }
  }
LAB_003c9a8e:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

