
/* 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
ReadPSDChannelRLE(Image *image,PSDInfo *psd_info,ssize_t type,MagickOffsetType *sizes,
                 ExceptionInfo *exception)

{
  byte bVar1;
  uint uVar2;
  byte *pbVar3;
  MagickOffsetType *pMVar4;
  MagickOffsetType *pMVar5;
  undefined *puVar6;
  byte *pbVar7;
  code *pcVar8;
  int iVar9;
  MagickBooleanType MVar10;
  byte *pbVar11;
  size_t sVar12;
  byte *pbVar13;
  byte *pbVar14;
  undefined4 uVar15;
  word *pwVar16;
  int iVar17;
  byte *pbVar18;
  int iVar19;
  size_t sVar20;
  word *local_2c;
  
  if (image->debug != MagickFalse) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);
  }
  uVar2 = image->depth;
  sVar20 = image->columns;
  if (uVar2 == 1) {
    sVar20 = sVar20 + 7 >> 3;
    if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;
LAB_0029590c:
    sVar20 = sVar20 << 1;
    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);
  }
  else {
    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;
    if (uVar2 < 0x11) {
      if (8 < uVar2) goto LAB_0029590c;
    }
    else {
      sVar20 = sVar20 << 2;
    }
LAB_00295804:
    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);
  }
  if (pbVar3 == (byte *)0x0) {
    uVar15 = 0x48f;
    puVar6 = PTR_LAB_003a88e0 + 0x16f8;
  }
  else {
    if ((int)image->rows < 1) {
      uVar2 = 0;
    }
    else {
      uVar2 = 0;
      pMVar4 = sizes;
      do {
        pMVar5 = pMVar4 + 1;
        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {
          uVar2 = (uint)*pMVar4;
        }
        pMVar4 = pMVar5;
      } while (sizes + image->rows != pMVar5);
      if (sVar20 + 0x800 < uVar2) {
        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
        uVar15 = 0x499;
        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;
        goto LAB_002958b8;
      }
    }
    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);
    if (pbVar7 != (byte *)0x0) {
      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);
      if ((int)image->rows < 1) {
        MVar10 = MagickTrue;
      }
      else {
        iVar19 = 0;
        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);
        local_2c = &WORD_0001e240;
        do {
          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);
          if (iVar9 != (int)*sizes) {
LAB_00295c40:
            MVar10 = MagickFalse;
            break;
          }
          sVar12 = 0;
          pbVar11 = pbVar3;
          pbVar14 = pbVar7;
          pwVar16 = (word *)image->depth;
          if ((word *)image->depth == (word *)0x1) {
            pwVar16 = local_2c;
          }
LAB_00295a28:
          if (1 < iVar9) {
            while( true ) {
              iVar17 = iVar9 + -1;
              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;
              uVar2 = (uint)*pbVar14;
              pbVar13 = pbVar14 + 1;
              if (uVar2 == 0x80) {
                pbVar18 = pbVar14 + iVar17;
                do {
                  pbVar14 = pbVar13;
                  iVar9 = iVar17;
                  if (pbVar18 == pbVar14) goto LAB_00295c40;
                  pbVar13 = pbVar14 + 1;
                  uVar2 = (uint)*pbVar14;
                  iVar17 = iVar9 + -1;
                } while (uVar2 == 0x80);
              }
              if (0x80 < uVar2) break;
              pbVar14 = pbVar13 + uVar2 + 1;
              iVar9 = iVar17;
              while( true ) {
                iVar9 = iVar9 + -1;
                if (pwVar16 == (word *)0x2) {
                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;
                  bVar1 = *pbVar13;
                  sVar12 = sVar12 + 4;
                  *pbVar11 = bVar1 >> 6;
                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);
                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);
                  pbVar11[3] = bVar1 & 3;
                  pbVar11 = pbVar11 + 4;
                }
                else if (pwVar16 == (word *)0x4) {
                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;
                  bVar1 = *pbVar13;
                  sVar12 = sVar12 + 2;
                  *pbVar11 = bVar1 >> 4;
                  pbVar11[1] = bVar1 & 0xf;
                  pbVar11 = pbVar11 + 2;
                }
                else {
                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;
                  sVar12 = sVar12 + 1;
                  *pbVar11 = *pbVar13;
                  pbVar11 = pbVar11 + 1;
                }
                if (pbVar13 + 1 == pbVar14) break;
                pbVar13 = pbVar13 + 1;
                if (iVar9 == 0) goto LAB_00295ad8;
              }
              if (iVar9 < 2) goto LAB_00295ad8;
            }
            bVar1 = pbVar14[1];
            iVar9 = iVar9 + -2;
            pbVar14 = pbVar14 + 2;
            iVar17 = 0;
            pbVar13 = pbVar11;
            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;
            do {
              if (pwVar16 == (word *)0x4) {
                if ((int)sVar20 <= (int)(sVar12 + 1)) break;
                *pbVar11 = bVar1 >> 4;
                sVar12 = sVar12 + 2;
                pbVar11[1] = bVar1 & 0xf;
                pbVar11 = pbVar11 + 2;
              }
              else {
                if ((int)sVar20 <= (int)sVar12) break;
                *pbVar11 = bVar1;
                sVar12 = sVar12 + 1;
                pbVar11 = pbVar11 + 1;
              }
              while( true ) {
                iVar17 = iVar17 + 1;
                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;
                pbVar13 = pbVar11;
                if (pwVar16 != (word *)0x2) break;
LAB_00295bcc:
                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;
                *pbVar13 = bVar1 >> 6;
                pbVar11 = pbVar13 + 4;
                pbVar13[1] = bVar1 >> 4 & 3;
                sVar12 = sVar12 + 4;
                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);
                pbVar13[3] = bVar1 & 3;
              }
            } while( true );
          }
LAB_00295ad8:
          if ((sVar20 != sVar12) ||
             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,
                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;
          iVar19 = iVar19 + 1;
          sizes = sizes + 1;
        } while (iVar19 < (int)image->rows);
      }
      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);
      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
      return MVar10;
    }
    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
    uVar15 = 0x4a1;
    puVar6 = PTR_LAB_003a88e0 + 0x16f8;
  }
LAB_002958b8:
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,
             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,
             PTR_LAB_003a88e0 + 0x3e28,image->filename);
  return MagickFalse;
}



int FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5
                )

{
  byte bVar1;
  uint uVar2;
  byte *pbVar3;
  int *piVar4;
  int *piVar5;
  undefined *puVar6;
  byte *pbVar7;
  code *pcVar8;
  int iVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  undefined4 uVar13;
  word *pwVar14;
  int iVar15;
  uint uVar16;
  byte *pbVar17;
  int iVar18;
  uint uVar19;
  word *local_2c;
  
  if (param_1[0xcd4] != 0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);
  }
  uVar2 = param_1[8];
  uVar19 = param_1[6];
  if (uVar2 == 1) {
    uVar19 = uVar19 + 7 >> 3;
    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;
LAB_0029590c:
    uVar19 = uVar19 << 1;
    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);
  }
  else {
    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;
    if (uVar2 < 0x11) {
      if (8 < uVar2) goto LAB_0029590c;
    }
    else {
      uVar19 = uVar19 << 2;
    }
LAB_00295804:
    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);
  }
  if (pbVar3 == (byte *)0x0) {
    uVar13 = 0x48f;
    puVar6 = PTR_LAB_003a88e0 + 0x16f8;
  }
  else {
    if (param_1[7] < 1) {
      uVar2 = 0;
    }
    else {
      uVar2 = 0;
      piVar4 = param_4;
      do {
        piVar5 = piVar4 + 2;
        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {
          uVar2 = piVar4[1];
        }
        piVar4 = piVar5;
      } while (param_4 + param_1[7] * 2 != piVar5);
      if (uVar19 + 0x800 < uVar2) {
        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
        uVar13 = 0x499;
        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;
        goto LAB_002958b8;
      }
    }
    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);
    if (pbVar7 != (byte *)0x0) {
      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);
      if (param_1[7] < 1) {
        iVar9 = 1;
      }
      else {
        iVar18 = 0;
        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);
        local_2c = &WORD_0001e240;
        do {
          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);
          if (iVar9 != param_4[1]) {
LAB_00295c40:
            iVar9 = 0;
            break;
          }
          uVar2 = 0;
          pbVar10 = pbVar3;
          pbVar12 = pbVar7;
          pwVar14 = (word *)param_1[8];
          if ((word *)param_1[8] == (word *)0x1) {
            pwVar14 = local_2c;
          }
LAB_00295a28:
          if (1 < iVar9) {
            while( true ) {
              iVar15 = iVar9 + -1;
              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;
              uVar16 = (uint)*pbVar12;
              pbVar11 = pbVar12 + 1;
              if (uVar16 == 0x80) {
                pbVar17 = pbVar12 + iVar15;
                do {
                  pbVar12 = pbVar11;
                  iVar9 = iVar15;
                  if (pbVar17 == pbVar12) goto LAB_00295c40;
                  pbVar11 = pbVar12 + 1;
                  uVar16 = (uint)*pbVar12;
                  iVar15 = iVar9 + -1;
                } while (uVar16 == 0x80);
              }
              if (0x80 < uVar16) break;
              pbVar12 = pbVar11 + uVar16 + 1;
              iVar9 = iVar15;
              while( true ) {
                iVar9 = iVar9 + -1;
                if (pwVar14 == (word *)0x2) {
                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;
                  bVar1 = *pbVar11;
                  uVar2 = uVar2 + 4;
                  *pbVar10 = bVar1 >> 6;
                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);
                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);
                  pbVar10[3] = bVar1 & 3;
                  pbVar10 = pbVar10 + 4;
                }
                else if (pwVar14 == (word *)0x4) {
                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;
                  bVar1 = *pbVar11;
                  uVar2 = uVar2 + 2;
                  *pbVar10 = bVar1 >> 4;
                  pbVar10[1] = bVar1 & 0xf;
                  pbVar10 = pbVar10 + 2;
                }
                else {
                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;
                  uVar2 = uVar2 + 1;
                  *pbVar10 = *pbVar11;
                  pbVar10 = pbVar10 + 1;
                }
                if (pbVar11 + 1 == pbVar12) break;
                pbVar11 = pbVar11 + 1;
                if (iVar9 == 0) goto LAB_00295ad8;
              }
              if (iVar9 < 2) goto LAB_00295ad8;
            }
            bVar1 = pbVar12[1];
            iVar9 = iVar9 + -2;
            pbVar12 = pbVar12 + 2;
            iVar15 = 0;
            pbVar11 = pbVar10;
            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;
            do {
              if (pwVar14 == (word *)0x4) {
                if ((int)uVar19 <= (int)(uVar2 + 1)) break;
                *pbVar10 = bVar1 >> 4;
                uVar2 = uVar2 + 2;
                pbVar10[1] = bVar1 & 0xf;
                pbVar10 = pbVar10 + 2;
              }
              else {
                if ((int)uVar19 <= (int)uVar2) break;
                *pbVar10 = bVar1;
                uVar2 = uVar2 + 1;
                pbVar10 = pbVar10 + 1;
              }
              while( true ) {
                iVar15 = iVar15 + 1;
                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;
                pbVar11 = pbVar10;
                if (pwVar14 != (word *)0x2) break;
LAB_00295bcc:
                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;
                *pbVar11 = bVar1 >> 6;
                pbVar10 = pbVar11 + 4;
                pbVar11[1] = bVar1 >> 4 & 3;
                uVar2 = uVar2 + 4;
                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);
                pbVar11[3] = bVar1 & 3;
              }
            } while( true );
          }
LAB_00295ad8:
          if ((uVar19 != uVar2) ||
             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))
          goto LAB_00295c40;
          iVar18 = iVar18 + 1;
          param_4 = param_4 + 2;
        } while (iVar18 < param_1[7]);
      }
      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);
      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
      return iVar9;
    }
    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
    uVar13 = 0x4a1;
    puVar6 = PTR_LAB_003a88e0 + 0x16f8;
  }
LAB_002958b8:
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,
             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,
             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);
  return 0;
}


lui gp,0x12
addiu gp,gp,-0x4ed0
addu gp,gp,t9
addiu sp,sp,-0x58
lw v0,0x3350(a0)
sw gp,0x20(sp)
sw s8,0x50(sp)
or s8,a1,zero
sw s6,0x48(sp)
or s6,a3,zero
sw s5,0x44(sp)
or s5,a0,zero
sw s3,0x3c(sp)
or s3,a2,zero
sw ra,0x54(sp)
sw s7,0x4c(sp)
sw s4,0x40(sp)
sw s2,0x38(sp)
sw s1,0x34(sp)
bne v0,zero,0x00295cbc
_sw s0,0x30(sp)
lw v0,0x20(s5)
li a0,0x1
lw s4,0x18(s5)
beq v0,a0,0x00295c94
_lw v1,0x0(s5)
li a0,0x2
beq v1,a0,0x00295964
_sltiu v1,v0,0x11
bne v1,zero,0x002958fc
_sltiu v0,v0,0x9
sll s4,s4,0x2
lw t9,-0x73a4(gp)
li a1,0x1
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
beq v0,zero,0x00295924
_or s1,v0,zero
lw a1,0x1c(s5)
blez a1,0x0029597c
_sll a1,a1,0x3
or s0,zero,zero
addu a1,a1,s6
or v0,s6,zero
lw v1,0x0(v0)
addiu v0,v0,0x8
bgtz v1,0x00295854
_lw a0,-0x4(v0)
bne v1,zero,0x00295858
_sltu a2,s0,a0
beq a2,zero,0x00295858
_nop
or s0,a0,zero
bne a1,v0,0x00295834
_nop
addiu v0,s4,0x800
sltu v0,v0,s0
beq v0,zero,0x00295980
_lw t9,-0x78f0(gp)
or a0,s1,zero
jalr t9
_addiu s5,s5,0x340
li a3,0x499
lw gp,0x20(sp)
lw a0,0x68(sp)
sw s5,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,0x1fc4
sw v0,0x18(sp)
addiu a1,a1,0x14c0
lw v0,-0x7f64(gp)
addiu v0,v0,0x1570
sw v0,0x14(sp)
li v0,0x190
or s7,zero,zero
jalr t9
_sw v0,0x10(sp)
or v0,s7,zero
lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
bne v0,zero,0x00295804
_lw t9,-0x73a4(gp)
sll s4,s4,0x1
lw t9,-0x73a4(gp)
li a1,0x1
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
bne v0,zero,0x0029581c
_or s1,v0,zero
lw v0,-0x7fd0(gp)
addiu s5,s5,0x340
lw a2,-0x7f64(gp)
li a3,0x48f
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,0x1fc4
lw a0,0x68(sp)
sw v0,0x18(sp)
addiu a1,a1,0x14c0
lw v0,-0x7fd0(gp)
sw s5,0x1c(sp)
addiu v0,v0,0x16f8
b 0x002958b8
_sw v0,0x14(sp)
lw v1,0x24(s5)
sltiu v1,v1,0x101
bne v1,zero,0x002957f4
_sltiu v1,v0,0x11
b 0x00295908
_sll s4,s4,0x1
or s0,zero,zero
lw t9,-0x73a4(gp)
li a1,0x1
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
beq v0,zero,0x00295cf0
_or s2,v0,zero
lw t9,-0x71dc(gp)
or a1,zero,zero
or a2,s0,zero
jalr t9
_or a0,v0,zero
lw v0,0x1c(s5)
blez v0,0x00295d3c
_lw gp,0x20(sp)
lw v0,-0x7cc8(gp)
or s0,zero,zero
sw s8,0x5c(sp)
addiu v0,v0,0x4b04
sw v0,0x28(sp)
lui v0,0x1
ori v0,v0,0xe240
sw v0,0x2c(sp)
lw t9,-0x7b04(gp)
or a2,s2,zero
lw a1,0x4(s6)
jalr t9
_or a0,s5,zero
lw v1,0x4(s6)
bne v0,v1,0x00295c40
_lw gp,0x20(sp)
lw a3,0x20(s5)
li v1,0x1
bne a3,v1,0x00295a10
_or a0,zero,zero
lw a3,0x2c(sp)
li t4,0x80
li t7,0x101
li t0,0x2
li t1,0x4
or v1,s1,zero
or a2,s2,zero
slti a1,v0,0x2
bne a1,zero,0x00295ad8
_slt a1,a0,s4
beq a1,zero,0x00295ad8
_addiu t2,v0,-0x1
lbu t3,0x0(a2)
beq t3,t4,0x00295c14
_addiu a1,a2,0x1
sltiu t5,t3,0x81
beq t5,zero,0x00295b64
_nop
addiu a2,t3,0x1
b 0x00295a98
_addu a2,a1,a2
slt v0,v0,s4
beq v0,zero,0x00295ad8
_addiu v1,v1,0x2
lbu v0,0x0(a1)
addiu a0,a0,0x2
srl t3,v0,0x4
andi v0,v0,0xf
sb t3,-0x2(v1)
sb v0,-0x1(v1)
addiu a1,a1,0x1
beq a1,a2,0x00295acc
_or v0,t2,zero
beq t2,zero,0x00295ad8
_nop
beq a3,t0,0x00295b28
_addiu t2,t2,-0x1
beq a3,t1,0x00295a60
_addiu v0,a0,0x1
slt v0,a0,s4
beq v0,zero,0x00295ad8
_addiu v1,v1,0x1
lbu v0,0x0(a1)
addiu a1,a1,0x1
addiu a0,a0,0x1
bne a1,a2,0x00295a90
_sb v0,-0x1(v1)
or v0,t2,zero
slti a1,v0,0x2
beq a1,zero,0x00295a34
_slt a1,a0,s4
bne s4,a0,0x00295c40
_lw v0,0x5c(sp)
or a3,s3,zero
lw t9,0x28(sp)
or a2,s0,zero
or a0,s5,zero
lhu a1,0x0(v0)
lw v0,0x68(sp)
sw s1,0x10(sp)
jalr t9
_sw v0,0x14(sp)
beq v0,zero,0x00295c40
_lw gp,0x20(sp)
lw v1,0x1c(s5)
addiu s0,s0,0x1
slt v1,s0,v1
bne v1,zero,0x002959dc
_addiu s6,s6,0x8
b 0x00295c44
_or s7,v0,zero
addiu v0,a0,0x3
slt v0,v0,s4
beq v0,zero,0x00295ad8
_addiu v1,v1,0x4
lbu v0,0x0(a1)
addiu a0,a0,0x4
srl t6,v0,0x6
ext t5,v0,0x4,0x2
ext t3,v0,0x2,0x2
sb t6,-0x4(v1)
andi v0,v0,0x3
sb t5,-0x3(v1)
sb t3,-0x2(v1)
b 0x00295a84
_sb v0,-0x1(v1)
lbu t2,0x1(a2)
addiu v0,v0,-0x2
addiu a2,a2,0x2
subu t3,t7,t3
srl t6,t2,0x4
srl s8,t2,0x6
andi s7,t6,0x3
ext ra,t2,0x2,0x2
or a1,zero,zero
andi t9,t2,0x3
beq a3,t0,0x00295bcc
_andi t8,t2,0xf
bne a3,t1,0x00295bf8
_addiu t5,a0,0x1
slt t5,t5,s4
beq t5,zero,0x00295ad8
_nop
sb t6,0x0(v1)
addiu a0,a0,0x2
sb t8,0x1(v1)
addiu v1,v1,0x2
addiu a1,a1,0x1
beq a1,t3,0x00295a28
_nop
bne a3,t0,0x00295b94
_nop
addiu t5,a0,0x3
slt t5,t5,s4
beq t5,zero,0x00295ad8
_nop
sb s8,0x0(v1)
addiu v1,v1,0x4
sb s7,-0x3(v1)
addiu a0,a0,0x4
sb ra,-0x2(v1)
b 0x00295bb8
_sb t9,-0x1(v1)
slt t5,a0,s4
beq t5,zero,0x00295ad8
_nop
sb t2,0x0(v1)
addiu a0,a0,0x1
b 0x00295bb8
_addiu v1,v1,0x1
addu t5,a2,t2
or v0,t2,zero
beq t5,a1,0x00295c40
_or a2,a1,zero
addiu a1,a1,0x1
lbu t3,-0x1(a1)
bne t3,t4,0x00295a48
_addiu t2,t2,-0x1
or a2,a1,zero
bne t5,a1,0x00295c24
_or v0,t2,zero
or s7,zero,zero
lw t9,-0x78f0(gp)
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x78f0(gp)
jalr t9
_or a0,s1,zero
or v0,s7,zero
lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
addiu s4,s4,0x7
li v0,0x2
bne v1,v0,0x00295800
_srl s4,s4,0x3
lw v0,0x24(s5)
sltiu v0,v0,0x101
bne v0,zero,0x00295804
_lw t9,-0x73a4(gp)
b 0x0029590c
_sll s4,s4,0x1
lw v0,-0x7f64(gp)
li a3,0x488
lw a2,-0x7f64(gp)
li a0,0x10
lw a1,-0x7f64(gp)
lw t9,-0x76d0(gp)
addiu v0,v0,0x154c
addiu a2,a2,0x1fc4
addiu a1,a1,0x14c0
jalr t9
_sw v0,0x10(sp)
b 0x002957d4
_lw gp,0x20(sp)
lw t9,-0x78f0(gp)
or a0,s1,zero
jalr t9
_addiu s5,s5,0x340
li a3,0x4a1
lw gp,0x20(sp)
lw a0,0x68(sp)
sw s5,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,0x1fc4
sw v0,0x18(sp)
addiu a1,a1,0x14c0
lw v0,-0x7fd0(gp)
b 0x002958b4
_addiu v0,v0,0x16f8
b 0x00295c44
_li s7,0x1
(translation_unit "int FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}\n\n" (function_definition "int FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}" primitive_type (function_declarator "FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )" identifier (parameter_list "(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined2 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "word *pwVar14;" type_identifier (pointer_declarator "*pwVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "word *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" if (parenthesized_expression "(param_1[0xcd4] != 0)" ( (binary_expression "param_1[0xcd4] != 0" (subscript_expression "param_1[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" ( number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c" identifier + number_literal) ))) ;) })) (expression_statement "uVar2 = param_1[8];" (assignment_expression "uVar2 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = param_1[6];" (assignment_expression "uVar19 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (if_statement "if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" { (expression_statement "uVar19 = uVar19 + 7 >> 3;" (assignment_expression "uVar19 = uVar19 + 7 >> 3" identifier = (binary_expression "uVar19 + 7 >> 3" (binary_expression "uVar19 + 7" identifier + number_literal) >> number_literal)) ;) (if_statement "if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;" if (parenthesized_expression "((*param_1 != 2) || ((uint)param_1[9] < 0x101))" ( (binary_expression "(*param_1 != 2) || ((uint)param_1[9] < 0x101)" (parenthesized_expression "(*param_1 != 2)" ( (binary_expression "*param_1 != 2" (pointer_expression "*param_1" * identifier) != number_literal) )) || (parenthesized_expression "((uint)param_1[9] < 0x101)" ( (binary_expression "(uint)param_1[9] < 0x101" (cast_expression "(uint)param_1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[9]" identifier [ number_literal ])) < number_literal) ))) )) (goto_statement "goto LAB_00295804;" goto statement_identifier ;)) (labeled_statement "LAB_0029590c:\n    uVar19 = uVar19 << 1;" statement_identifier : (expression_statement "uVar19 = uVar19 << 1;" (assignment_expression "uVar19 = uVar19 << 1" identifier = (binary_expression "uVar19 << 1" identifier << number_literal)) ;)) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19,1)" ( identifier , number_literal ))))) ;) }) (else_clause "else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" else (compound_statement "{\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" { (if_statement "if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;" if (parenthesized_expression "((*param_1 == 2) && (0x100 < (uint)param_1[9]))" ( (binary_expression "(*param_1 == 2) && (0x100 < (uint)param_1[9])" (parenthesized_expression "(*param_1 == 2)" ( (binary_expression "*param_1 == 2" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(0x100 < (uint)param_1[9])" ( (binary_expression "0x100 < (uint)param_1[9]" number_literal < (cast_expression "(uint)param_1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_0029590c;" goto statement_identifier ;)) (if_statement "if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }" if (parenthesized_expression "(uVar2 < 0x11)" ( (binary_expression "uVar2 < 0x11" identifier < number_literal) )) (compound_statement "{\n      if (8 < uVar2) goto LAB_0029590c;\n    }" { (if_statement "if (8 < uVar2) goto LAB_0029590c;" if (parenthesized_expression "(8 < uVar2)" ( (binary_expression "8 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_0029590c;" goto statement_identifier ;)) }) (else_clause "else {\n      uVar19 = uVar19 << 2;\n    }" else (compound_statement "{\n      uVar19 = uVar19 << 2;\n    }" { (expression_statement "uVar19 = uVar19 << 2;" (assignment_expression "uVar19 = uVar19 << 2" identifier = (binary_expression "uVar19 << 2" identifier << number_literal)) ;) }))) (labeled_statement "LAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" statement_identifier : (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19,1)" ( identifier , number_literal ))))) ;)) }))) (if_statement "if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" { (expression_statement "uVar13 = 0x48f;" (assignment_expression "uVar13 = 0x48f" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) }) (else_clause "else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" else (compound_statement "{\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" { (if_statement "if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" if (parenthesized_expression "(param_1[7] < 1)" ( (binary_expression "param_1[7] < 1" (subscript_expression "param_1[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" else (compound_statement "{\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar4 = param_4;" (assignment_expression "piVar4 = param_4" identifier = identifier) ;) (do_statement "do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);" do (compound_statement "{\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      }" { (expression_statement "piVar5 = piVar4 + 2;" (assignment_expression "piVar5 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (if_statement "if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }" if (parenthesized_expression "((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1]))))" ( (binary_expression "(0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))" (parenthesized_expression "(0 < *piVar4)" ( (binary_expression "0 < *piVar4" number_literal < (pointer_expression "*piVar4" * identifier)) )) || (parenthesized_expression "((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))" ( (parenthesized_expression "(*piVar4 == 0 && (uVar2 < (uint)piVar4[1]))" ( (binary_expression "*piVar4 == 0 && (uVar2 < (uint)piVar4[1])" (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) && (parenthesized_expression "(uVar2 < (uint)piVar4[1])" ( (binary_expression "uVar2 < (uint)piVar4[1]" identifier < (cast_expression "(uint)piVar4[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[1]" identifier [ number_literal ]))) ))) )) ))) )) (compound_statement "{\n          uVar2 = piVar4[1];\n        }" { (expression_statement "uVar2 = piVar4[1];" (assignment_expression "uVar2 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 + param_1[7] * 2 != piVar5)" ( (binary_expression "param_4 + param_1[7] * 2 != piVar5" (binary_expression "param_4 + param_1[7] * 2" identifier + (binary_expression "param_1[7] * 2" (subscript_expression "param_1[7]" identifier [ number_literal ]) * number_literal)) != identifier) )) ;) (if_statement "if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" if (parenthesized_expression "(uVar19 + 0x800 < uVar2)" ( (binary_expression "uVar19 + 0x800 < uVar2" (binary_expression "uVar19 + 0x800" identifier + number_literal) < identifier) )) (compound_statement "{\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (expression_statement "uVar13 = 0x499;" (assignment_expression "uVar13 = 0x499" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" identifier = (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" identifier + number_literal)) ;) (goto_statement "goto LAB_002958b8;" goto statement_identifier ;) })) }))) (expression_statement "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);" (assignment_expression "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,1)" ( identifier , number_literal ))))) ;) (if_statement "if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }" if (parenthesized_expression "(pbVar7 != (byte *)0x0)" ( (binary_expression "pbVar7 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }" { (expression_statement "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);" (call_expression "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar7,0,uVar2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" if (parenthesized_expression "(param_1[7] < 1)" ( (binary_expression "param_1[7] < 1" (subscript_expression "param_1[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" else (compound_statement "{\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04)" identifier = (cast_expression "(code *)(PTR_LAB_003a8be8 + 0x4b04)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8be8 + 0x4b04)" ( (binary_expression "PTR_LAB_003a8be8 + 0x4b04" identifier + number_literal) )))) ;) (expression_statement "local_2c = &WORD_0001e240;" (assignment_expression "local_2c = &WORD_0001e240" identifier = (pointer_expression "&WORD_0001e240" & identifier)) ;) (do_statement "do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);" do (compound_statement "{\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);" (assignment_expression "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7)" identifier = (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" ( (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" * (cast_expression "(code *)PTR_ReadBlob_003a8dac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_4[1],pbVar7)" ( identifier , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }" if (parenthesized_expression "(iVar9 != param_4[1])" ( (binary_expression "iVar9 != param_4[1]" identifier != (subscript_expression "param_4[1]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }" { (labeled_statement "LAB_00295c40:\n            iVar9 = 0;" statement_identifier : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar7;" (assignment_expression "pbVar12 = pbVar7" identifier = identifier) ;) (expression_statement "pwVar14 = (word *)param_1[8];" (assignment_expression "pwVar14 = (word *)param_1[8]" identifier = (cast_expression "(word *)param_1[8]" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (if_statement "if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }" if (parenthesized_expression "((word *)param_1[8] == (word *)0x1)" ( (binary_expression "(word *)param_1[8] == (word *)0x1" (cast_expression "(word *)param_1[8]" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) == (cast_expression "(word *)0x1" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pwVar14 = local_2c;\n          }" { (expression_statement "pwVar14 = local_2c;" (assignment_expression "pwVar14 = local_2c" identifier = identifier) ;) })) (labeled_statement "LAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" statement_identifier : (if_statement "if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" if (parenthesized_expression "(1 < iVar9)" ( (binary_expression "1 < iVar9" number_literal < identifier) )) (compound_statement "{\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" { (while_statement "while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" { (expression_statement "iVar15 = iVar9 + -1;" (assignment_expression "iVar15 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)uVar2)" ( (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }" if (parenthesized_expression "(uVar16 == 0x80)" ( (binary_expression "uVar16 == 0x80" identifier == number_literal) )) (compound_statement "{\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }" { (expression_statement "pbVar17 = pbVar12 + iVar15;" (assignment_expression "pbVar17 = pbVar12 + iVar15" identifier = (binary_expression "pbVar12 + iVar15" identifier + identifier)) ;) (do_statement "do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);" do (compound_statement "{\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                }" { (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" identifier = identifier) ;) (expression_statement "iVar9 = iVar15;" (assignment_expression "iVar9 = iVar15" identifier = identifier) ;) (if_statement "if (pbVar17 == pbVar12) goto LAB_00295c40;" if (parenthesized_expression "(pbVar17 == pbVar12)" ( (binary_expression "pbVar17 == pbVar12" identifier == identifier) )) (goto_statement "goto LAB_00295c40;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar15 = iVar9 + -1;" (assignment_expression "iVar15 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 == 0x80)" ( (binary_expression "uVar16 == 0x80" identifier == number_literal) )) ;) })) (if_statement "if (0x80 < uVar16) break;" if (parenthesized_expression "(0x80 < uVar16)" ( (binary_expression "0x80 < uVar16" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = pbVar11 + uVar16 + 1;" (assignment_expression "pbVar12 = pbVar11 + uVar16 + 1" identifier = (binary_expression "pbVar11 + uVar16 + 1" (binary_expression "pbVar11 + uVar16" identifier + identifier) + number_literal)) ;) (expression_statement "iVar9 = iVar15;" (assignment_expression "iVar9 = iVar15" identifier = identifier) ;) (while_statement "while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" if (parenthesized_expression "(pwVar14 == (word *)0x2)" ( (binary_expression "pwVar14 == (word *)0x2" identifier == (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }" { (if_statement "if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 3))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 3)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 3)" ( (binary_expression "uVar2 + 3" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "uVar2 = uVar2 + 4;" (assignment_expression "uVar2 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (expression_statement "*pbVar10 = bVar1 >> 6;" (assignment_expression "*pbVar10 = bVar1 >> 6" (pointer_expression "*pbVar10" * identifier) = (binary_expression "bVar1 >> 6" identifier >> number_literal)) ;) (expression_statement "pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);" (assignment_expression "pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1a) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1a) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1a)" ( (binary_expression "(uint)bVar1 << 0x1a" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar10[2]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" ( (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar10[3] = bVar1 & 3;" (assignment_expression "pbVar10[3] = bVar1 & 3" (subscript_expression "pbVar10[3]" identifier [ number_literal ]) = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) }) (else_clause "else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" else (if_statement "if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" if (parenthesized_expression "(pwVar14 == (word *)0x4)" ( (binary_expression "pwVar14 == (word *)0x4" identifier == (cast_expression "(word *)0x4" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }" { (if_statement "if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 1))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 1)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "*pbVar10 = bVar1 >> 4;" (assignment_expression "*pbVar10 = bVar1 >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "pbVar10[1] = bVar1 & 0xf;" (assignment_expression "pbVar10[1] = bVar1 & 0xf" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "bVar1 & 0xf" identifier & number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" else (compound_statement "{\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" { (if_statement "if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)uVar2)" ( (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = *pbVar11;" (assignment_expression "*pbVar10 = *pbVar11" (pointer_expression "*pbVar10" * identifier) = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }))))) (if_statement "if (pbVar11 + 1 == pbVar12) break;" if (parenthesized_expression "(pbVar11 + 1 == pbVar12)" ( (binary_expression "pbVar11 + 1 == pbVar12" (binary_expression "pbVar11 + 1" identifier + number_literal) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0) goto LAB_00295ad8;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) })) (if_statement "if (iVar9 < 2) goto LAB_00295ad8;" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) })) (expression_statement "bVar1 = pbVar12[1];" (assignment_expression "bVar1 = pbVar12[1]" identifier = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = iVar9 + -2;" (assignment_expression "iVar9 = iVar9 + -2" identifier = (binary_expression "iVar9 + -2" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (if_statement "if (pwVar14 == (word *)0x2) goto LAB_00295bcc;" if (parenthesized_expression "(pwVar14 == (word *)0x2)" ( (binary_expression "pwVar14 == (word *)0x2" identifier == (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00295bcc;" goto statement_identifier ;)) (do_statement "do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );" do (compound_statement "{\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            }" { (if_statement "if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" if (parenthesized_expression "(pwVar14 == (word *)0x4)" ( (binary_expression "pwVar14 == (word *)0x4" identifier == (cast_expression "(word *)0x4" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }" { (if_statement "if ((int)uVar19 <= (int)(uVar2 + 1)) break;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 1))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 1)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "*pbVar10 = bVar1 >> 4;" (assignment_expression "*pbVar10 = bVar1 >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "pbVar10[1] = bVar1 & 0xf;" (assignment_expression "pbVar10[1] = bVar1 & 0xf" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "bVar1 & 0xf" identifier & number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" else (compound_statement "{\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" { (if_statement "if ((int)uVar19 <= (int)uVar2) break;" if (parenthesized_expression "((int)uVar19 <= (int)uVar2)" ( (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "*pbVar10 = bVar1;" (assignment_expression "*pbVar10 = bVar1" (pointer_expression "*pbVar10" * identifier) = identifier) ;) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }))) (while_statement "while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;" if (parenthesized_expression "(iVar15 == 0x101 - uVar16)" ( (binary_expression "iVar15 == 0x101 - uVar16" identifier == (binary_expression "0x101 - uVar16" number_literal - identifier)) )) (goto_statement "goto LAB_00295a28;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (if_statement "if (pwVar14 != (word *)0x2) break;" if (parenthesized_expression "(pwVar14 != (word *)0x2)" ( (binary_expression "pwVar14 != (word *)0x2" identifier != (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" statement_identifier : (if_statement "if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 3))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 3)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 3)" ( (binary_expression "uVar2 + 3" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;))) (expression_statement "*pbVar11 = bVar1 >> 6;" (assignment_expression "*pbVar11 = bVar1 >> 6" (pointer_expression "*pbVar11" * identifier) = (binary_expression "bVar1 >> 6" identifier >> number_literal)) ;) (expression_statement "pbVar10 = pbVar11 + 4;" (assignment_expression "pbVar10 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "pbVar11[1] = bVar1 >> 4 & 3;" (assignment_expression "pbVar11[1] = bVar1 >> 4 & 3" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (binary_expression "bVar1 >> 4 & 3" (binary_expression "bVar1 >> 4" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar2 = uVar2 + 4;" (assignment_expression "uVar2 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (expression_statement "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" ( (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar11[3] = bVar1 & 3;" (assignment_expression "pbVar11[3] = bVar1 & 3" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;" statement_identifier : (if_statement "if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;" if (parenthesized_expression "((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))" ( (binary_expression "(uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0)" (parenthesized_expression "(uVar19 != uVar2)" ( (binary_expression "uVar19 != uVar2" identifier != identifier) )) || (parenthesized_expression "(iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0)" ( (comma_expression "iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0" (assignment_expression "iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" identifier = (call_expression "(*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" ( identifier , (pointer_expression "*param_2" * identifier) , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00295c40;" goto statement_identifier ;))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < param_1[7])" ( (binary_expression "iVar18 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) }))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (return_statement "return iVar9;" return identifier ;) })) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (expression_statement "uVar13 = 0x4a1;" (assignment_expression "uVar13 = 0x4a1" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" statement_identifier : (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" ( identifier , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" identifier + number_literal) , identifier , number_literal , identifier , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(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\nReadPSDChannelRLE(Image *image,PSDInfo *psd_info,ssize_t type,MagickOffsetType *sizes,\n                 ExceptionInfo *exception)\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  MagickOffsetType *pMVar4;\n  MagickOffsetType *pMVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  MagickBooleanType MVar10;\n  byte *pbVar11;\n  size_t sVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  word *pwVar16;\n  int iVar17;\n  byte *pbVar18;\n  int iVar19;\n  size_t sVar20;\n  word *local_2c;\n  \n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = image->depth;\n  sVar20 = image->columns;\n  if (uVar2 == 1) {\n    sVar20 = sVar20 + 7 >> 3;\n    if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    sVar20 = sVar20 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  else {\n    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar15 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar15 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename);\n  return MagickFalse;\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType\nReadPSDChannelRLE(Image *image,PSDInfo *psd_info,ssize_t type,MagickOffsetType *sizes,\n                 ExceptionInfo *exception)\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  MagickOffsetType *pMVar4;\n  MagickOffsetType *pMVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  MagickBooleanType MVar10;\n  byte *pbVar11;\n  size_t sVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  word *pwVar16;\n  int iVar17;\n  byte *pbVar18;\n  int iVar19;\n  size_t sVar20;\n  word *local_2c;\n  \n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = image->depth;\n  sVar20 = image->columns;\n  if (uVar2 == 1) {\n    sVar20 = sVar20 + 7 >> 3;\n    if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    sVar20 = sVar20 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  else {\n    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar15 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar15 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename);\n  return MagickFalse;\n}" type_identifier (function_declarator "ReadPSDChannelRLE(Image *image,PSDInfo *psd_info,ssize_t type,MagickOffsetType *sizes,\n                 ExceptionInfo *exception)" identifier (parameter_list "(Image *image,PSDInfo *psd_info,ssize_t type,MagickOffsetType *sizes,\n                 ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "PSDInfo *psd_info" type_identifier (pointer_declarator "*psd_info" * identifier)) , (parameter_declaration "ssize_t type" primitive_type identifier) , (parameter_declaration "MagickOffsetType *sizes" type_identifier (pointer_declarator "*sizes" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  MagickOffsetType *pMVar4;\n  MagickOffsetType *pMVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  MagickBooleanType MVar10;\n  byte *pbVar11;\n  size_t sVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  word *pwVar16;\n  int iVar17;\n  byte *pbVar18;\n  int iVar19;\n  size_t sVar20;\n  word *local_2c;\n  \n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = image->depth;\n  sVar20 = image->columns;\n  if (uVar2 == 1) {\n    sVar20 = sVar20 + 7 >> 3;\n    if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    sVar20 = sVar20 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  else {\n    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar15 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar15 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename);\n  return MagickFalse;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "MagickOffsetType *pMVar4;" type_identifier (pointer_declarator "*pMVar4" * identifier) ;) (declaration "MagickOffsetType *pMVar5;" type_identifier (pointer_declarator "*pMVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "MagickBooleanType MVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "word *pwVar16;" type_identifier (pointer_declarator "*pwVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "size_t sVar20;" primitive_type identifier ;) (declaration "word *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" ( number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c" identifier + number_literal) ))) ;) })) (expression_statement "uVar2 = image->depth;" (assignment_expression "uVar2 = image->depth" identifier = (field_expression "image->depth" identifier -> field_identifier)) ;) (expression_statement "sVar20 = image->columns;" (assignment_expression "sVar20 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (uVar2 == 1) {\n    sVar20 = sVar20 + 7 >> 3;\n    if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    sVar20 = sVar20 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }\n  else {\n    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n    sVar20 = sVar20 + 7 >> 3;\n    if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    sVar20 = sVar20 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }" { (expression_statement "sVar20 = sVar20 + 7 >> 3;" (assignment_expression "sVar20 = sVar20 + 7 >> 3" identifier = (binary_expression "sVar20 + 7 >> 3" (binary_expression "sVar20 + 7" identifier + number_literal) >> number_literal)) ;) (if_statement "if ((image->storage_class != PseudoClass) || (image->colors < 0x101)) goto LAB_00295804;" if (parenthesized_expression "((image->storage_class != PseudoClass) || (image->colors < 0x101))" ( (binary_expression "(image->storage_class != PseudoClass) || (image->colors < 0x101)" (parenthesized_expression "(image->storage_class != PseudoClass)" ( (binary_expression "image->storage_class != PseudoClass" (field_expression "image->storage_class" identifier -> field_identifier) != identifier) )) || (parenthesized_expression "(image->colors < 0x101)" ( (binary_expression "image->colors < 0x101" (field_expression "image->colors" identifier -> field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_00295804;" goto statement_identifier ;)) (labeled_statement "LAB_0029590c:\n    sVar20 = sVar20 << 1;" statement_identifier : (expression_statement "sVar20 = sVar20 << 1;" (assignment_expression "sVar20 = sVar20 << 1" identifier = (binary_expression "sVar20 << 1" identifier << number_literal)) ;)) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sVar20,1)" ( identifier , number_literal ))))) ;) }) (else_clause "else {\n    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }" else (compound_statement "{\n    if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);\n  }" { (if_statement "if ((image->storage_class == PseudoClass) && (0x100 < image->colors)) goto LAB_0029590c;" if (parenthesized_expression "((image->storage_class == PseudoClass) && (0x100 < image->colors))" ( (binary_expression "(image->storage_class == PseudoClass) && (0x100 < image->colors)" (parenthesized_expression "(image->storage_class == PseudoClass)" ( (binary_expression "image->storage_class == PseudoClass" (field_expression "image->storage_class" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(0x100 < image->colors)" ( (binary_expression "0x100 < image->colors" number_literal < (field_expression "image->colors" identifier -> field_identifier)) ))) )) (goto_statement "goto LAB_0029590c;" goto statement_identifier ;)) (if_statement "if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      sVar20 = sVar20 << 2;\n    }" if (parenthesized_expression "(uVar2 < 0x11)" ( (binary_expression "uVar2 < 0x11" identifier < number_literal) )) (compound_statement "{\n      if (8 < uVar2) goto LAB_0029590c;\n    }" { (if_statement "if (8 < uVar2) goto LAB_0029590c;" if (parenthesized_expression "(8 < uVar2)" ( (binary_expression "8 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_0029590c;" goto statement_identifier ;)) }) (else_clause "else {\n      sVar20 = sVar20 << 2;\n    }" else (compound_statement "{\n      sVar20 = sVar20 << 2;\n    }" { (expression_statement "sVar20 = sVar20 << 2;" (assignment_expression "sVar20 = sVar20 << 2" identifier = (binary_expression "sVar20 << 2" identifier << number_literal)) ;) }))) (labeled_statement "LAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);" statement_identifier : (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(sVar20,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sVar20,1)" ( identifier , number_literal ))))) ;)) }))) (if_statement "if (pbVar3 == (byte *)0x0) {\n    uVar15 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar15 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar15 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" { (expression_statement "uVar15 = 0x48f;" (assignment_expression "uVar15 = 0x48f" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) }) (else_clause "else {\n    if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar15 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" else (compound_statement "{\n    if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar15 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" { (if_statement "if ((int)image->rows < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" if (parenthesized_expression "((int)image->rows < 1)" ( (binary_expression "(int)image->rows < 1" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" else (compound_statement "{\n      uVar2 = 0;\n      pMVar4 = sizes;\n      do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);\n      if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "pMVar4 = sizes;" (assignment_expression "pMVar4 = sizes" identifier = identifier) ;) (do_statement "do {\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      } while (sizes + image->rows != pMVar5);" do (compound_statement "{\n        pMVar5 = pMVar4 + 1;\n        if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }\n        pMVar4 = pMVar5;\n      }" { (expression_statement "pMVar5 = pMVar4 + 1;" (assignment_expression "pMVar5 = pMVar4 + 1" identifier = (binary_expression "pMVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))) {\n          uVar2 = (uint)*pMVar4;\n        }" if (parenthesized_expression "((0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4))))" ( (binary_expression "(0 < *(int *)pMVar4) || ((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))" (parenthesized_expression "(0 < *(int *)pMVar4)" ( (binary_expression "0 < *(int *)pMVar4" number_literal < (pointer_expression "*(int *)pMVar4" * (cast_expression "(int *)pMVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) || (parenthesized_expression "((*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)))" ( (parenthesized_expression "(*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4))" ( (binary_expression "*(int *)pMVar4 == 0 && (uVar2 < (uint)*pMVar4)" (binary_expression "*(int *)pMVar4 == 0" (pointer_expression "*(int *)pMVar4" * (cast_expression "(int *)pMVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) && (parenthesized_expression "(uVar2 < (uint)*pMVar4)" ( (binary_expression "uVar2 < (uint)*pMVar4" identifier < (binary_expression "(uint)*pMVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))) )) ))) )) (compound_statement "{\n          uVar2 = (uint)*pMVar4;\n        }" { (expression_statement "uVar2 = (uint)*pMVar4;" (assignment_expression "uVar2 = (uint)*pMVar4" identifier = (binary_expression "(uint)*pMVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) (expression_statement "pMVar4 = pMVar5;" (assignment_expression "pMVar4 = pMVar5" identifier = identifier) ;) }) while (parenthesized_expression "(sizes + image->rows != pMVar5)" ( (binary_expression "sizes + image->rows != pMVar5" (binary_expression "sizes + image->rows" identifier + (field_expression "image->rows" identifier -> field_identifier)) != identifier) )) ;) (if_statement "if (sVar20 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" if (parenthesized_expression "(sVar20 + 0x800 < uVar2)" ( (binary_expression "sVar20 + 0x800 < uVar2" (binary_expression "sVar20 + 0x800" identifier + number_literal) < identifier) )) (compound_statement "{\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar15 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (expression_statement "uVar15 = 0x499;" (assignment_expression "uVar15 = 0x499" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" identifier = (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" identifier + number_literal)) ;) (goto_statement "goto LAB_002958b8;" goto statement_identifier ;) })) }))) (expression_statement "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);" (assignment_expression "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,1)" ( identifier , number_literal ))))) ;) (if_statement "if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }" if (parenthesized_expression "(pbVar7 != (byte *)0x0)" ( (binary_expression "pbVar7 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return MVar10;\n    }" { (expression_statement "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);" (call_expression "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar7,0,uVar2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if ((int)image->rows < 1) {\n        MVar10 = MagickTrue;\n      }\n      else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }" if (parenthesized_expression "((int)image->rows < 1)" ( (binary_expression "(int)image->rows < 1" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        MVar10 = MagickTrue;\n      }" { (expression_statement "MVar10 = MagickTrue;" (assignment_expression "MVar10 = MagickTrue" identifier = identifier) ;) }) (else_clause "else {\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }" else (compound_statement "{\n        iVar19 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04)" identifier = (cast_expression "(code *)(PTR_LAB_003a8be8 + 0x4b04)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8be8 + 0x4b04)" ( (binary_expression "PTR_LAB_003a8be8 + 0x4b04" identifier + number_literal) )))) ;) (expression_statement "local_2c = &WORD_0001e240;" (assignment_expression "local_2c = &WORD_0001e240" identifier = (pointer_expression "&WORD_0001e240" & identifier)) ;) (do_statement "do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        } while (iVar19 < (int)image->rows);" do (compound_statement "{\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);\n          if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }\n          sVar12 = 0;\n          pbVar11 = pbVar3;\n          pbVar14 = pbVar7;\n          pwVar16 = (word *)image->depth;\n          if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;\n          iVar19 = iVar19 + 1;\n          sizes = sizes + 1;\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7);" (assignment_expression "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7)" identifier = (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(image,(int)*sizes,pbVar7)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" ( (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" * (cast_expression "(code *)PTR_ReadBlob_003a8dac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,(int)*sizes,pbVar7)" ( identifier , (cast_expression "(int)*sizes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*sizes" * identifier)) , identifier )))) ;) (if_statement "if (iVar9 != (int)*sizes) {\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }" if (parenthesized_expression "(iVar9 != (int)*sizes)" ( (binary_expression "iVar9 != (int)*sizes" identifier != (cast_expression "(int)*sizes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*sizes" * identifier))) )) (compound_statement "{\nLAB_00295c40:\n            MVar10 = MagickFalse;\n            break;\n          }" { (labeled_statement "LAB_00295c40:\n            MVar10 = MagickFalse;" statement_identifier : (expression_statement "MVar10 = MagickFalse;" (assignment_expression "MVar10 = MagickFalse" identifier = identifier) ;)) (break_statement "break;" break ;) })) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (expression_statement "pwVar16 = (word *)image->depth;" (assignment_expression "pwVar16 = (word *)image->depth" identifier = (cast_expression "(word *)image->depth" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image->depth" identifier -> field_identifier))) ;) (if_statement "if ((word *)image->depth == (word *)0x1) {\n            pwVar16 = local_2c;\n          }" if (parenthesized_expression "((word *)image->depth == (word *)0x1)" ( (binary_expression "(word *)image->depth == (word *)0x1" (cast_expression "(word *)image->depth" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image->depth" identifier -> field_identifier)) == (cast_expression "(word *)0x1" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pwVar16 = local_2c;\n          }" { (expression_statement "pwVar16 = local_2c;" (assignment_expression "pwVar16 = local_2c" identifier = identifier) ;) })) (labeled_statement "LAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" statement_identifier : (if_statement "if (1 < iVar9) {\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" if (parenthesized_expression "(1 < iVar9)" ( (binary_expression "1 < iVar9" number_literal < identifier) )) (compound_statement "{\n            while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar14[1];\n            iVar9 = iVar9 + -2;\n            pbVar14 = pbVar14 + 2;\n            iVar17 = 0;\n            pbVar13 = pbVar11;\n            if (pwVar16 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" { (while_statement "while( true ) {\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar17 = iVar9 + -1;\n              if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n              uVar2 = (uint)*pbVar14;\n              pbVar13 = pbVar14 + 1;\n              if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }\n              if (0x80 < uVar2) break;\n              pbVar14 = pbVar13 + uVar2 + 1;\n              iVar9 = iVar17;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" { (expression_statement "iVar17 = iVar9 + -1;" (assignment_expression "iVar17 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;" if (parenthesized_expression "((int)sVar20 <= (int)sVar12)" ( (binary_expression "(int)sVar20 <= (int)sVar12" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)sVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "uVar2 = (uint)*pbVar14;" (assignment_expression "uVar2 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 == 0x80) {\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }" if (parenthesized_expression "(uVar2 == 0x80)" ( (binary_expression "uVar2 == 0x80" identifier == number_literal) )) (compound_statement "{\n                pbVar18 = pbVar14 + iVar17;\n                do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);\n              }" { (expression_statement "pbVar18 = pbVar14 + iVar17;" (assignment_expression "pbVar18 = pbVar14 + iVar17" identifier = (binary_expression "pbVar14 + iVar17" identifier + identifier)) ;) (do_statement "do {\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                } while (uVar2 == 0x80);" do (compound_statement "{\n                  pbVar14 = pbVar13;\n                  iVar9 = iVar17;\n                  if (pbVar18 == pbVar14) goto LAB_00295c40;\n                  pbVar13 = pbVar14 + 1;\n                  uVar2 = (uint)*pbVar14;\n                  iVar17 = iVar9 + -1;\n                }" { (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "iVar9 = iVar17;" (assignment_expression "iVar9 = iVar17" identifier = identifier) ;) (if_statement "if (pbVar18 == pbVar14) goto LAB_00295c40;" if (parenthesized_expression "(pbVar18 == pbVar14)" ( (binary_expression "pbVar18 == pbVar14" identifier == identifier) )) (goto_statement "goto LAB_00295c40;" goto statement_identifier ;)) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)*pbVar14;" (assignment_expression "uVar2 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar17 = iVar9 + -1;" (assignment_expression "iVar17 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 == 0x80)" ( (binary_expression "uVar2 == 0x80" identifier == number_literal) )) ;) })) (if_statement "if (0x80 < uVar2) break;" if (parenthesized_expression "(0x80 < uVar2)" ( (binary_expression "0x80 < uVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar13 + uVar2 + 1;" (assignment_expression "pbVar14 = pbVar13 + uVar2 + 1" identifier = (binary_expression "pbVar13 + uVar2 + 1" (binary_expression "pbVar13 + uVar2" identifier + identifier) + number_literal)) ;) (expression_statement "iVar9 = iVar17;" (assignment_expression "iVar9 = iVar17" identifier = identifier) ;) (while_statement "while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar9 = iVar9 + -1;\n                if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }\n                if (pbVar13 + 1 == pbVar14) break;\n                pbVar13 = pbVar13 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (pwVar16 == (word *)0x2) {\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }\n                else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }" if (parenthesized_expression "(pwVar16 == (word *)0x2)" ( (binary_expression "pwVar16 == (word *)0x2" identifier == (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 4;\n                  *pbVar11 = bVar1 >> 6;\n                  pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar11[3] = bVar1 & 3;\n                  pbVar11 = pbVar11 + 4;\n                }" { (if_statement "if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;" if (parenthesized_expression "((int)sVar20 <= (int)(sVar12 + 3))" ( (binary_expression "(int)sVar20 <= (int)(sVar12 + 3)" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(sVar12 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar12 + 3)" ( (binary_expression "sVar12 + 3" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar13;" (assignment_expression "bVar1 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "sVar12 = sVar12 + 4;" (assignment_expression "sVar12 = sVar12 + 4" identifier = (binary_expression "sVar12 + 4" identifier + number_literal)) ;) (expression_statement "*pbVar11 = bVar1 >> 6;" (assignment_expression "*pbVar11 = bVar1 >> 6" (pointer_expression "*pbVar11" * identifier) = (binary_expression "bVar1 >> 6" identifier >> number_literal)) ;) (expression_statement "pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);" (assignment_expression "pbVar11[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1a) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1a) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1a)" ( (binary_expression "(uint)bVar1 << 0x1a" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" ( (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar11[3] = bVar1 & 3;" (assignment_expression "pbVar11[3] = bVar1 & 3" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 4;" (assignment_expression "pbVar11 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) }) (else_clause "else if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }" else (if_statement "if (pwVar16 == (word *)0x4) {\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }\n                else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }" if (parenthesized_expression "(pwVar16 == (word *)0x4)" ( (binary_expression "pwVar16 == (word *)0x4" identifier == (cast_expression "(word *)0x4" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar13;\n                  sVar12 = sVar12 + 2;\n                  *pbVar11 = bVar1 >> 4;\n                  pbVar11[1] = bVar1 & 0xf;\n                  pbVar11 = pbVar11 + 2;\n                }" { (if_statement "if ((int)sVar20 <= (int)(sVar12 + 1)) goto LAB_00295ad8;" if (parenthesized_expression "((int)sVar20 <= (int)(sVar12 + 1))" ( (binary_expression "(int)sVar20 <= (int)(sVar12 + 1)" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(sVar12 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar12 + 1)" ( (binary_expression "sVar12 + 1" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar13;" (assignment_expression "bVar1 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "sVar12 = sVar12 + 2;" (assignment_expression "sVar12 = sVar12 + 2" identifier = (binary_expression "sVar12 + 2" identifier + number_literal)) ;) (expression_statement "*pbVar11 = bVar1 >> 4;" (assignment_expression "*pbVar11 = bVar1 >> 4" (pointer_expression "*pbVar11" * identifier) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "pbVar11[1] = bVar1 & 0xf;" (assignment_expression "pbVar11[1] = bVar1 & 0xf" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (binary_expression "bVar1 & 0xf" identifier & number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 2;" (assignment_expression "pbVar11 = pbVar11 + 2" identifier = (binary_expression "pbVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }" else (compound_statement "{\n                  if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;\n                  sVar12 = sVar12 + 1;\n                  *pbVar11 = *pbVar13;\n                  pbVar11 = pbVar11 + 1;\n                }" { (if_statement "if ((int)sVar20 <= (int)sVar12) goto LAB_00295ad8;" if (parenthesized_expression "((int)sVar20 <= (int)sVar12)" ( (binary_expression "(int)sVar20 <= (int)sVar12" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)sVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" identifier = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = *pbVar13;" (assignment_expression "*pbVar11 = *pbVar13" (pointer_expression "*pbVar11" * identifier) = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }))))) (if_statement "if (pbVar13 + 1 == pbVar14) break;" if (parenthesized_expression "(pbVar13 + 1 == pbVar14)" ( (binary_expression "pbVar13 + 1 == pbVar14" (binary_expression "pbVar13 + 1" identifier + number_literal) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0) goto LAB_00295ad8;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) })) (if_statement "if (iVar9 < 2) goto LAB_00295ad8;" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) })) (expression_statement "bVar1 = pbVar14[1];" (assignment_expression "bVar1 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = iVar9 + -2;" (assignment_expression "iVar9 = iVar9 + -2" identifier = (binary_expression "iVar9 + -2" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 2;" (assignment_expression "pbVar14 = pbVar14 + 2" identifier = (binary_expression "pbVar14 + 2" identifier + number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = pbVar11;" (assignment_expression "pbVar13 = pbVar11" identifier = identifier) ;) (if_statement "if (pwVar16 == (word *)0x2) goto LAB_00295bcc;" if (parenthesized_expression "(pwVar16 == (word *)0x2)" ( (binary_expression "pwVar16 == (word *)0x2" identifier == (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00295bcc;" goto statement_identifier ;)) (do_statement "do {\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            } while( true );" do (compound_statement "{\n              if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }\n              while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }\n            }" { (if_statement "if (pwVar16 == (word *)0x4) {\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }\n              else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }" if (parenthesized_expression "(pwVar16 == (word *)0x4)" ( (binary_expression "pwVar16 == (word *)0x4" identifier == (cast_expression "(word *)0x4" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((int)sVar20 <= (int)(sVar12 + 1)) break;\n                *pbVar11 = bVar1 >> 4;\n                sVar12 = sVar12 + 2;\n                pbVar11[1] = bVar1 & 0xf;\n                pbVar11 = pbVar11 + 2;\n              }" { (if_statement "if ((int)sVar20 <= (int)(sVar12 + 1)) break;" if (parenthesized_expression "((int)sVar20 <= (int)(sVar12 + 1))" ( (binary_expression "(int)sVar20 <= (int)(sVar12 + 1)" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(sVar12 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar12 + 1)" ( (binary_expression "sVar12 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "*pbVar11 = bVar1 >> 4;" (assignment_expression "*pbVar11 = bVar1 >> 4" (pointer_expression "*pbVar11" * identifier) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "sVar12 = sVar12 + 2;" (assignment_expression "sVar12 = sVar12 + 2" identifier = (binary_expression "sVar12 + 2" identifier + number_literal)) ;) (expression_statement "pbVar11[1] = bVar1 & 0xf;" (assignment_expression "pbVar11[1] = bVar1 & 0xf" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (binary_expression "bVar1 & 0xf" identifier & number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 2;" (assignment_expression "pbVar11 = pbVar11 + 2" identifier = (binary_expression "pbVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }" else (compound_statement "{\n                if ((int)sVar20 <= (int)sVar12) break;\n                *pbVar11 = bVar1;\n                sVar12 = sVar12 + 1;\n                pbVar11 = pbVar11 + 1;\n              }" { (if_statement "if ((int)sVar20 <= (int)sVar12) break;" if (parenthesized_expression "((int)sVar20 <= (int)sVar12)" ( (binary_expression "(int)sVar20 <= (int)sVar12" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)sVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "*pbVar11 = bVar1;" (assignment_expression "*pbVar11 = bVar1" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" identifier = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }))) (while_statement "while( true ) {\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar17 = iVar17 + 1;\n                if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;\n                pbVar13 = pbVar11;\n                if (pwVar16 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;\n                *pbVar13 = bVar1 >> 6;\n                pbVar11 = pbVar13 + 4;\n                pbVar13[1] = bVar1 >> 4 & 3;\n                sVar12 = sVar12 + 4;\n                pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar13[3] = bVar1 & 3;\n              }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (if_statement "if (iVar17 == 0x101 - uVar2) goto LAB_00295a28;" if (parenthesized_expression "(iVar17 == 0x101 - uVar2)" ( (binary_expression "iVar17 == 0x101 - uVar2" identifier == (binary_expression "0x101 - uVar2" number_literal - identifier)) )) (goto_statement "goto LAB_00295a28;" goto statement_identifier ;)) (expression_statement "pbVar13 = pbVar11;" (assignment_expression "pbVar13 = pbVar11" identifier = identifier) ;) (if_statement "if (pwVar16 != (word *)0x2) break;" if (parenthesized_expression "(pwVar16 != (word *)0x2)" ( (binary_expression "pwVar16 != (word *)0x2" identifier != (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00295bcc:\n                if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;" statement_identifier : (if_statement "if ((int)sVar20 <= (int)(sVar12 + 3)) goto LAB_00295ad8;" if (parenthesized_expression "((int)sVar20 <= (int)(sVar12 + 3))" ( (binary_expression "(int)sVar20 <= (int)(sVar12 + 3)" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(sVar12 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar12 + 3)" ( (binary_expression "sVar12 + 3" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;))) (expression_statement "*pbVar13 = bVar1 >> 6;" (assignment_expression "*pbVar13 = bVar1 >> 6" (pointer_expression "*pbVar13" * identifier) = (binary_expression "bVar1 >> 6" identifier >> number_literal)) ;) (expression_statement "pbVar11 = pbVar13 + 4;" (assignment_expression "pbVar11 = pbVar13 + 4" identifier = (binary_expression "pbVar13 + 4" identifier + number_literal)) ;) (expression_statement "pbVar13[1] = bVar1 >> 4 & 3;" (assignment_expression "pbVar13[1] = bVar1 >> 4 & 3" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) = (binary_expression "bVar1 >> 4 & 3" (binary_expression "bVar1 >> 4" identifier >> number_literal) & number_literal)) ;) (expression_statement "sVar12 = sVar12 + 4;" (assignment_expression "sVar12 = sVar12 + 4" identifier = (binary_expression "sVar12 + 4" identifier + number_literal)) ;) (expression_statement "pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar13[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar13[2]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" ( (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar13[3] = bVar1 & 3;" (assignment_expression "pbVar13[3] = bVar1 & 3" (subscript_expression "pbVar13[3]" identifier [ number_literal ]) = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_00295ad8:\n          if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;" statement_identifier : (if_statement "if ((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)) goto LAB_00295c40;" if (parenthesized_expression "((sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse))" ( (binary_expression "(sVar20 != sVar12) ||\n             (MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)" (parenthesized_expression "(sVar20 != sVar12)" ( (binary_expression "sVar20 != sVar12" identifier != identifier) )) || (parenthesized_expression "(MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse)" ( (comma_expression "MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception), MVar10 == MagickFalse" (assignment_expression "MVar10 = (*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception)" identifier = (call_expression "(*pcVar8)(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(image,*(undefined2 *)psd_info->signature,iVar19,type,pbVar3,\n                                 exception)" ( identifier , (pointer_expression "*(undefined2 *)psd_info->signature" * (cast_expression "(undefined2 *)psd_info->signature" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psd_info->signature" identifier -> field_identifier))) , identifier , identifier , identifier , identifier )))) , (binary_expression "MVar10 == MagickFalse" identifier == identifier)) ))) )) (goto_statement "goto LAB_00295c40;" goto statement_identifier ;))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "sizes = sizes + 1;" (assignment_expression "sizes = sizes + 1" identifier = (binary_expression "sizes + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 < (int)image->rows)" ( (binary_expression "iVar19 < (int)image->rows" identifier < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) }))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (return_statement "return MVar10;" return identifier ;) })) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (expression_statement "uVar15 = 0x4a1;" (assignment_expression "uVar15 = 0x4a1" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename);" statement_identifier : (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(exception,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar15,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,image->filename)" ( identifier , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" identifier + number_literal) , identifier , number_literal , identifier , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;)) (return_statement "return MagickFalse;" return identifier ;) })))
(translation_unit "int FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}\n\n" (function_definition "int FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}" primitive_type (function_declarator "FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )" identifier (parameter_list "(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined2 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "word *pwVar14;" type_identifier (pointer_declarator "*pwVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "word *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" if (parenthesized_expression "(param_1[0xcd4] != 0)" ( (binary_expression "param_1[0xcd4] != 0" (subscript_expression "param_1[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" ( number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c" identifier + number_literal) ))) ;) })) (expression_statement "uVar2 = param_1[8];" (assignment_expression "uVar2 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = param_1[6];" (assignment_expression "uVar19 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (if_statement "if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" { (expression_statement "uVar19 = uVar19 + 7 >> 3;" (assignment_expression "uVar19 = uVar19 + 7 >> 3" identifier = (binary_expression "uVar19 + 7 >> 3" (binary_expression "uVar19 + 7" identifier + number_literal) >> number_literal)) ;) (if_statement "if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;" if (parenthesized_expression "((*param_1 != 2) || ((uint)param_1[9] < 0x101))" ( (binary_expression "(*param_1 != 2) || ((uint)param_1[9] < 0x101)" (parenthesized_expression "(*param_1 != 2)" ( (binary_expression "*param_1 != 2" (pointer_expression "*param_1" * identifier) != number_literal) )) || (parenthesized_expression "((uint)param_1[9] < 0x101)" ( (binary_expression "(uint)param_1[9] < 0x101" (cast_expression "(uint)param_1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[9]" identifier [ number_literal ])) < number_literal) ))) )) (goto_statement "goto LAB_00295804;" goto statement_identifier ;)) (labeled_statement "LAB_0029590c:\n    uVar19 = uVar19 << 1;" statement_identifier : (expression_statement "uVar19 = uVar19 << 1;" (assignment_expression "uVar19 = uVar19 << 1" identifier = (binary_expression "uVar19 << 1" identifier << number_literal)) ;)) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19,1)" ( identifier , number_literal ))))) ;) }) (else_clause "else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" else (compound_statement "{\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" { (if_statement "if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;" if (parenthesized_expression "((*param_1 == 2) && (0x100 < (uint)param_1[9]))" ( (binary_expression "(*param_1 == 2) && (0x100 < (uint)param_1[9])" (parenthesized_expression "(*param_1 == 2)" ( (binary_expression "*param_1 == 2" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(0x100 < (uint)param_1[9])" ( (binary_expression "0x100 < (uint)param_1[9]" number_literal < (cast_expression "(uint)param_1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_0029590c;" goto statement_identifier ;)) (if_statement "if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }" if (parenthesized_expression "(uVar2 < 0x11)" ( (binary_expression "uVar2 < 0x11" identifier < number_literal) )) (compound_statement "{\n      if (8 < uVar2) goto LAB_0029590c;\n    }" { (if_statement "if (8 < uVar2) goto LAB_0029590c;" if (parenthesized_expression "(8 < uVar2)" ( (binary_expression "8 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_0029590c;" goto statement_identifier ;)) }) (else_clause "else {\n      uVar19 = uVar19 << 2;\n    }" else (compound_statement "{\n      uVar19 = uVar19 << 2;\n    }" { (expression_statement "uVar19 = uVar19 << 2;" (assignment_expression "uVar19 = uVar19 << 2" identifier = (binary_expression "uVar19 << 2" identifier << number_literal)) ;) }))) (labeled_statement "LAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" statement_identifier : (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19,1)" ( identifier , number_literal ))))) ;)) }))) (if_statement "if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" { (expression_statement "uVar13 = 0x48f;" (assignment_expression "uVar13 = 0x48f" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) }) (else_clause "else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" else (compound_statement "{\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" { (if_statement "if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" if (parenthesized_expression "(param_1[7] < 1)" ( (binary_expression "param_1[7] < 1" (subscript_expression "param_1[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" else (compound_statement "{\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar4 = param_4;" (assignment_expression "piVar4 = param_4" identifier = identifier) ;) (do_statement "do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);" do (compound_statement "{\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      }" { (expression_statement "piVar5 = piVar4 + 2;" (assignment_expression "piVar5 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (if_statement "if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }" if (parenthesized_expression "((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1]))))" ( (binary_expression "(0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))" (parenthesized_expression "(0 < *piVar4)" ( (binary_expression "0 < *piVar4" number_literal < (pointer_expression "*piVar4" * identifier)) )) || (parenthesized_expression "((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))" ( (parenthesized_expression "(*piVar4 == 0 && (uVar2 < (uint)piVar4[1]))" ( (binary_expression "*piVar4 == 0 && (uVar2 < (uint)piVar4[1])" (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) && (parenthesized_expression "(uVar2 < (uint)piVar4[1])" ( (binary_expression "uVar2 < (uint)piVar4[1]" identifier < (cast_expression "(uint)piVar4[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[1]" identifier [ number_literal ]))) ))) )) ))) )) (compound_statement "{\n          uVar2 = piVar4[1];\n        }" { (expression_statement "uVar2 = piVar4[1];" (assignment_expression "uVar2 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 + param_1[7] * 2 != piVar5)" ( (binary_expression "param_4 + param_1[7] * 2 != piVar5" (binary_expression "param_4 + param_1[7] * 2" identifier + (binary_expression "param_1[7] * 2" (subscript_expression "param_1[7]" identifier [ number_literal ]) * number_literal)) != identifier) )) ;) (if_statement "if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" if (parenthesized_expression "(uVar19 + 0x800 < uVar2)" ( (binary_expression "uVar19 + 0x800 < uVar2" (binary_expression "uVar19 + 0x800" identifier + number_literal) < identifier) )) (compound_statement "{\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (expression_statement "uVar13 = 0x499;" (assignment_expression "uVar13 = 0x499" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" identifier = (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" identifier + number_literal)) ;) (goto_statement "goto LAB_002958b8;" goto statement_identifier ;) })) }))) (expression_statement "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);" (assignment_expression "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,1)" ( identifier , number_literal ))))) ;) (if_statement "if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }" if (parenthesized_expression "(pbVar7 != (byte *)0x0)" ( (binary_expression "pbVar7 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }" { (expression_statement "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);" (call_expression "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar7,0,uVar2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" if (parenthesized_expression "(param_1[7] < 1)" ( (binary_expression "param_1[7] < 1" (subscript_expression "param_1[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" else (compound_statement "{\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04)" identifier = (cast_expression "(code *)(PTR_LAB_003a8be8 + 0x4b04)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8be8 + 0x4b04)" ( (binary_expression "PTR_LAB_003a8be8 + 0x4b04" identifier + number_literal) )))) ;) (expression_statement "local_2c = &WORD_0001e240;" (assignment_expression "local_2c = &WORD_0001e240" identifier = (pointer_expression "&WORD_0001e240" & identifier)) ;) (do_statement "do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);" do (compound_statement "{\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);" (assignment_expression "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7)" identifier = (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" ( (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" * (cast_expression "(code *)PTR_ReadBlob_003a8dac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_4[1],pbVar7)" ( identifier , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }" if (parenthesized_expression "(iVar9 != param_4[1])" ( (binary_expression "iVar9 != param_4[1]" identifier != (subscript_expression "param_4[1]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }" { (labeled_statement "LAB_00295c40:\n            iVar9 = 0;" statement_identifier : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar7;" (assignment_expression "pbVar12 = pbVar7" identifier = identifier) ;) (expression_statement "pwVar14 = (word *)param_1[8];" (assignment_expression "pwVar14 = (word *)param_1[8]" identifier = (cast_expression "(word *)param_1[8]" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (if_statement "if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }" if (parenthesized_expression "((word *)param_1[8] == (word *)0x1)" ( (binary_expression "(word *)param_1[8] == (word *)0x1" (cast_expression "(word *)param_1[8]" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) == (cast_expression "(word *)0x1" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pwVar14 = local_2c;\n          }" { (expression_statement "pwVar14 = local_2c;" (assignment_expression "pwVar14 = local_2c" identifier = identifier) ;) })) (labeled_statement "LAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" statement_identifier : (if_statement "if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" if (parenthesized_expression "(1 < iVar9)" ( (binary_expression "1 < iVar9" number_literal < identifier) )) (compound_statement "{\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" { (while_statement "while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" { (expression_statement "iVar15 = iVar9 + -1;" (assignment_expression "iVar15 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)uVar2)" ( (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }" if (parenthesized_expression "(uVar16 == 0x80)" ( (binary_expression "uVar16 == 0x80" identifier == number_literal) )) (compound_statement "{\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }" { (expression_statement "pbVar17 = pbVar12 + iVar15;" (assignment_expression "pbVar17 = pbVar12 + iVar15" identifier = (binary_expression "pbVar12 + iVar15" identifier + identifier)) ;) (do_statement "do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);" do (compound_statement "{\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                }" { (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" identifier = identifier) ;) (expression_statement "iVar9 = iVar15;" (assignment_expression "iVar9 = iVar15" identifier = identifier) ;) (if_statement "if (pbVar17 == pbVar12) goto LAB_00295c40;" if (parenthesized_expression "(pbVar17 == pbVar12)" ( (binary_expression "pbVar17 == pbVar12" identifier == identifier) )) (goto_statement "goto LAB_00295c40;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar15 = iVar9 + -1;" (assignment_expression "iVar15 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 == 0x80)" ( (binary_expression "uVar16 == 0x80" identifier == number_literal) )) ;) })) (if_statement "if (0x80 < uVar16) break;" if (parenthesized_expression "(0x80 < uVar16)" ( (binary_expression "0x80 < uVar16" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = pbVar11 + uVar16 + 1;" (assignment_expression "pbVar12 = pbVar11 + uVar16 + 1" identifier = (binary_expression "pbVar11 + uVar16 + 1" (binary_expression "pbVar11 + uVar16" identifier + identifier) + number_literal)) ;) (expression_statement "iVar9 = iVar15;" (assignment_expression "iVar9 = iVar15" identifier = identifier) ;) (while_statement "while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" if (parenthesized_expression "(pwVar14 == (word *)0x2)" ( (binary_expression "pwVar14 == (word *)0x2" identifier == (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }" { (if_statement "if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 3))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 3)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 3)" ( (binary_expression "uVar2 + 3" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "uVar2 = uVar2 + 4;" (assignment_expression "uVar2 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (expression_statement "*pbVar10 = bVar1 >> 6;" (assignment_expression "*pbVar10 = bVar1 >> 6" (pointer_expression "*pbVar10" * identifier) = (binary_expression "bVar1 >> 6" identifier >> number_literal)) ;) (expression_statement "pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);" (assignment_expression "pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1a) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1a) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1a)" ( (binary_expression "(uint)bVar1 << 0x1a" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar10[2]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" ( (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar10[3] = bVar1 & 3;" (assignment_expression "pbVar10[3] = bVar1 & 3" (subscript_expression "pbVar10[3]" identifier [ number_literal ]) = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) }) (else_clause "else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" else (if_statement "if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" if (parenthesized_expression "(pwVar14 == (word *)0x4)" ( (binary_expression "pwVar14 == (word *)0x4" identifier == (cast_expression "(word *)0x4" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }" { (if_statement "if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 1))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 1)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "*pbVar10 = bVar1 >> 4;" (assignment_expression "*pbVar10 = bVar1 >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "pbVar10[1] = bVar1 & 0xf;" (assignment_expression "pbVar10[1] = bVar1 & 0xf" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "bVar1 & 0xf" identifier & number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" else (compound_statement "{\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" { (if_statement "if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)uVar2)" ( (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = *pbVar11;" (assignment_expression "*pbVar10 = *pbVar11" (pointer_expression "*pbVar10" * identifier) = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }))))) (if_statement "if (pbVar11 + 1 == pbVar12) break;" if (parenthesized_expression "(pbVar11 + 1 == pbVar12)" ( (binary_expression "pbVar11 + 1 == pbVar12" (binary_expression "pbVar11 + 1" identifier + number_literal) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0) goto LAB_00295ad8;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) })) (if_statement "if (iVar9 < 2) goto LAB_00295ad8;" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;)) })) (expression_statement "bVar1 = pbVar12[1];" (assignment_expression "bVar1 = pbVar12[1]" identifier = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = iVar9 + -2;" (assignment_expression "iVar9 = iVar9 + -2" identifier = (binary_expression "iVar9 + -2" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (if_statement "if (pwVar14 == (word *)0x2) goto LAB_00295bcc;" if (parenthesized_expression "(pwVar14 == (word *)0x2)" ( (binary_expression "pwVar14 == (word *)0x2" identifier == (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00295bcc;" goto statement_identifier ;)) (do_statement "do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );" do (compound_statement "{\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            }" { (if_statement "if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" if (parenthesized_expression "(pwVar14 == (word *)0x4)" ( (binary_expression "pwVar14 == (word *)0x4" identifier == (cast_expression "(word *)0x4" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }" { (if_statement "if ((int)uVar19 <= (int)(uVar2 + 1)) break;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 1))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 1)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "*pbVar10 = bVar1 >> 4;" (assignment_expression "*pbVar10 = bVar1 >> 4" (pointer_expression "*pbVar10" * identifier) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "pbVar10[1] = bVar1 & 0xf;" (assignment_expression "pbVar10[1] = bVar1 & 0xf" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) = (binary_expression "bVar1 & 0xf" identifier & number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" else (compound_statement "{\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" { (if_statement "if ((int)uVar19 <= (int)uVar2) break;" if (parenthesized_expression "((int)uVar19 <= (int)uVar2)" ( (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "*pbVar10 = bVar1;" (assignment_expression "*pbVar10 = bVar1" (pointer_expression "*pbVar10" * identifier) = identifier) ;) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }))) (while_statement "while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;" if (parenthesized_expression "(iVar15 == 0x101 - uVar16)" ( (binary_expression "iVar15 == 0x101 - uVar16" identifier == (binary_expression "0x101 - uVar16" number_literal - identifier)) )) (goto_statement "goto LAB_00295a28;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (if_statement "if (pwVar14 != (word *)0x2) break;" if (parenthesized_expression "(pwVar14 != (word *)0x2)" ( (binary_expression "pwVar14 != (word *)0x2" identifier != (cast_expression "(word *)0x2" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" statement_identifier : (if_statement "if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" if (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 3))" ( (binary_expression "(int)uVar19 <= (int)(uVar2 + 3)" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar2 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + 3)" ( (binary_expression "uVar2 + 3" identifier + number_literal) )))) )) (goto_statement "goto LAB_00295ad8;" goto statement_identifier ;))) (expression_statement "*pbVar11 = bVar1 >> 6;" (assignment_expression "*pbVar11 = bVar1 >> 6" (pointer_expression "*pbVar11" * identifier) = (binary_expression "bVar1 >> 6" identifier >> number_literal)) ;) (expression_statement "pbVar10 = pbVar11 + 4;" (assignment_expression "pbVar10 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "pbVar11[1] = bVar1 >> 4 & 3;" (assignment_expression "pbVar11[1] = bVar1 >> 4 & 3" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (binary_expression "bVar1 >> 4 & 3" (binary_expression "bVar1 >> 4" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar2 = uVar2 + 4;" (assignment_expression "uVar2 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (expression_statement "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" ( (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" ( (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "pbVar11[3] = bVar1 & 3;" (assignment_expression "pbVar11[3] = bVar1 & 3" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;" statement_identifier : (if_statement "if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;" if (parenthesized_expression "((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))" ( (binary_expression "(uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0)" (parenthesized_expression "(uVar19 != uVar2)" ( (binary_expression "uVar19 != uVar2" identifier != identifier) )) || (parenthesized_expression "(iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0)" ( (comma_expression "iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0" (assignment_expression "iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" identifier = (call_expression "(*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" ( identifier , (pointer_expression "*param_2" * identifier) , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00295c40;" goto statement_identifier ;))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < param_1[7])" ( (binary_expression "iVar18 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) }))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (return_statement "return iVar9;" return identifier ;) })) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier ))) ;) (expression_statement "uVar13 = 0x4a1;" (assignment_expression "uVar13 = 0x4a1" identifier = number_literal) ;) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" statement_identifier : (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" ( identifier , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" identifier + number_literal) , identifier , number_literal , identifier , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == LIT) && (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (break_statement break ;)) (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 ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression LIT - IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) })) }) while (parenthesized_expression ( BOOL )) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression * IDENT) , IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , LIT , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;)) (return_statement return LIT ;) })))
(function_definition "int FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )\n\n{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}" (primitive_type "int") (function_declarator "FUN_00295780(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )" (identifier "FUN_00295780") (parameter_list "(int *param_1,undefined2 *param_2,undefined4 param_3,int *param_4,undefined4 param_5\n                )" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined2 *param_2" (type_identifier "undefined2") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined *puVar6;\n  byte *pbVar7;\n  code *pcVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 uVar13;\n  word *pwVar14;\n  int iVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  word *local_2c;\n  \n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }\n  uVar2 = param_1[8];\n  uVar19 = param_1[6];\n  if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\nLAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return 0;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "word *pwVar14;" (type_identifier "word") (pointer_declarator "*pwVar14" (* "*") (identifier "pwVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "word *local_2c;" (type_identifier "word") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (if_statement "if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" (if "if") (parenthesized_expression "(param_1[0xcd4] != 0)" (( "(") (binary_expression "param_1[0xcd4] != 0" (subscript_expression "param_1[0xcd4]" (identifier "param_1") ([ "[") (number_literal "0xcd4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);\n  }" ({ "{") (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_003a91e0"))) () ")")) (argument_list "(0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c)" (( "(") (number_literal "0x10") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "0x14c0")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "0x1fc4")) (, ",") (number_literal "0x488") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "0x154c")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = param_1[8];" (assignment_expression "uVar2 = param_1[8]" (identifier "uVar2") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uVar19 = param_1[6];" (assignment_expression "uVar19 = param_1[6]" (identifier "uVar19") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (uVar2 == 1) {\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }\n  else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" (if "if") (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    uVar19 = uVar19 + 7 >> 3;\n    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;\nLAB_0029590c:\n    uVar19 = uVar19 << 1;\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" ({ "{") (expression_statement "uVar19 = uVar19 + 7 >> 3;" (assignment_expression "uVar19 = uVar19 + 7 >> 3" (identifier "uVar19") (= "=") (binary_expression "uVar19 + 7 >> 3" (binary_expression "uVar19 + 7" (identifier "uVar19") (+ "+") (number_literal "7")) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;" (if "if") (parenthesized_expression "((*param_1 != 2) || ((uint)param_1[9] < 0x101))" (( "(") (binary_expression "(*param_1 != 2) || ((uint)param_1[9] < 0x101)" (parenthesized_expression "(*param_1 != 2)" (( "(") (binary_expression "*param_1 != 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((uint)param_1[9] < 0x101)" (( "(") (binary_expression "(uint)param_1[9] < 0x101" (cast_expression "(uint)param_1[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (< "<") (number_literal "0x101")) () ")"))) () ")")) (goto_statement "goto LAB_00295804;" (goto "goto") (statement_identifier "LAB_00295804") (; ";"))) (labeled_statement "LAB_0029590c:\n    uVar19 = uVar19 << 1;" (statement_identifier "LAB_0029590c") (: ":") (expression_statement "uVar19 = uVar19 << 1;" (assignment_expression "uVar19 = uVar19 << 1" (identifier "uVar19") (= "=") (binary_expression "uVar19 << 1" (identifier "uVar19") (<< "<<") (number_literal "1"))) (; ";"))) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003a950c"))) () ")")) (argument_list "(uVar19,1)" (( "(") (identifier "uVar19") (, ",") (number_literal "1") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" (else "else") (compound_statement "{\n    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;\n    if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }\nLAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);\n  }" ({ "{") (if_statement "if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;" (if "if") (parenthesized_expression "((*param_1 == 2) && (0x100 < (uint)param_1[9]))" (( "(") (binary_expression "(*param_1 == 2) && (0x100 < (uint)param_1[9])" (parenthesized_expression "(*param_1 == 2)" (( "(") (binary_expression "*param_1 == 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(0x100 < (uint)param_1[9])" (( "(") (binary_expression "0x100 < (uint)param_1[9]" (number_literal "0x100") (< "<") (cast_expression "(uint)param_1[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) () ")"))) () ")")) (goto_statement "goto LAB_0029590c;" (goto "goto") (statement_identifier "LAB_0029590c") (; ";"))) (if_statement "if (uVar2 < 0x11) {\n      if (8 < uVar2) goto LAB_0029590c;\n    }\n    else {\n      uVar19 = uVar19 << 2;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0x11)" (( "(") (binary_expression "uVar2 < 0x11" (identifier "uVar2") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n      if (8 < uVar2) goto LAB_0029590c;\n    }" ({ "{") (if_statement "if (8 < uVar2) goto LAB_0029590c;" (if "if") (parenthesized_expression "(8 < uVar2)" (( "(") (binary_expression "8 < uVar2" (number_literal "8") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto LAB_0029590c;" (goto "goto") (statement_identifier "LAB_0029590c") (; ";"))) (} "}")) (else_clause "else {\n      uVar19 = uVar19 << 2;\n    }" (else "else") (compound_statement "{\n      uVar19 = uVar19 << 2;\n    }" ({ "{") (expression_statement "uVar19 = uVar19 << 2;" (assignment_expression "uVar19 = uVar19 << 2" (identifier "uVar19") (= "=") (binary_expression "uVar19 << 2" (identifier "uVar19") (<< "<<") (number_literal "2"))) (; ";")) (} "}")))) (labeled_statement "LAB_00295804:\n    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (statement_identifier "LAB_00295804") (: ":") (expression_statement "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003a950c"))) () ")")) (argument_list "(uVar19,1)" (( "(") (identifier "uVar19") (, ",") (number_literal "1") () ")"))))) (; ";"))) (} "}")))) (if_statement "if (pbVar3 == (byte *)0x0) {\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }\n  else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0x0)" (( "(") (binary_expression "pbVar3 == (byte *)0x0" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar13 = 0x48f;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" ({ "{") (expression_statement "uVar13 = 0x48f;" (assignment_expression "uVar13 = 0x48f" (identifier "uVar13") (= "=") (number_literal "0x48f")) (; ";")) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x16f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x16f8"))) (; ";")) (} "}")) (else_clause "else {\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" (else "else") (compound_statement "{\n    if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }\n    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);\n    if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }\n    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n    uVar13 = 0x4a1;\n    puVar6 = PTR_LAB_003a88e0 + 0x16f8;\n  }" ({ "{") (if_statement "if (param_1[7] < 1) {\n      uVar2 = 0;\n    }\n    else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" (if "if") (parenthesized_expression "(param_1[7] < 1)" (( "(") (binary_expression "param_1[7] < 1" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      uVar2 = 0;\n    }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" (else "else") (compound_statement "{\n      uVar2 = 0;\n      piVar4 = param_4;\n      do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);\n      if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }\n    }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4 = param_4;" (assignment_expression "piVar4 = param_4" (identifier "piVar4") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      } while (param_4 + param_1[7] * 2 != piVar5);" (do "do") (compound_statement "{\n        piVar5 = piVar4 + 2;\n        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }\n        piVar4 = piVar5;\n      }" ({ "{") (expression_statement "piVar5 = piVar4 + 2;" (assignment_expression "piVar5 = piVar4 + 2" (identifier "piVar5") (= "=") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {\n          uVar2 = piVar4[1];\n        }" (if "if") (parenthesized_expression "((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1]))))" (( "(") (binary_expression "(0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))" (parenthesized_expression "(0 < *piVar4)" (( "(") (binary_expression "0 < *piVar4" (number_literal "0") (< "<") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) () ")")) (|| "||") (parenthesized_expression "((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))" (( "(") (parenthesized_expression "(*piVar4 == 0 && (uVar2 < (uint)piVar4[1]))" (( "(") (binary_expression "*piVar4 == 0 && (uVar2 < (uint)piVar4[1])" (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(uVar2 < (uint)piVar4[1])" (( "(") (binary_expression "uVar2 < (uint)piVar4[1]" (identifier "uVar2") (< "<") (cast_expression "(uint)piVar4[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar2 = piVar4[1];\n        }" ({ "{") (expression_statement "uVar2 = piVar4[1];" (assignment_expression "uVar2 = piVar4[1]" (identifier "uVar2") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" (identifier "piVar4") (= "=") (identifier "piVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 + param_1[7] * 2 != piVar5)" (( "(") (binary_expression "param_4 + param_1[7] * 2 != piVar5" (binary_expression "param_4 + param_1[7] * 2" (identifier "param_4") (+ "+") (binary_expression "param_1[7] * 2" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (* "*") (number_literal "2"))) (!= "!=") (identifier "piVar5")) () ")")) (; ";")) (if_statement "if (uVar19 + 0x800 < uVar2) {\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" (if "if") (parenthesized_expression "(uVar19 + 0x800 < uVar2)" (( "(") (binary_expression "uVar19 + 0x800 < uVar2" (binary_expression "uVar19 + 0x800" (identifier "uVar19") (+ "+") (number_literal "0x800")) (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n        uVar13 = 0x499;\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;\n        goto LAB_002958b8;\n      }" ({ "{") (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "uVar13 = 0x499;" (assignment_expression "uVar13 = 0x499" (identifier "uVar13") (= "=") (number_literal "0x499")) (; ";")) (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" (identifier "puVar6") (= "=") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "0x1570"))) (; ";")) (goto_statement "goto LAB_002958b8;" (goto "goto") (statement_identifier "LAB_002958b8") (; ";")) (} "}"))) (} "}")))) (expression_statement "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);" (assignment_expression "pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003a950c"))) () ")")) (argument_list "(uVar2,1)" (( "(") (identifier "uVar2") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (pbVar7 != (byte *)0x0) {\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }" (if "if") (parenthesized_expression "(pbVar7 != (byte *)0x0)" (( "(") (binary_expression "pbVar7 != (byte *)0x0" (identifier "pbVar7") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);\n      if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);\n      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);\n      return iVar9;\n    }" ({ "{") (expression_statement "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);" (call_expression "(*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" (( "(") (pointer_expression "*(code *)PTR_memset_003a96d4" (* "*") (cast_expression "(code *)PTR_memset_003a96d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_003a96d4"))) () ")")) (argument_list "(pbVar7,0,uVar2)" (( "(") (identifier "pbVar7") (, ",") (number_literal "0") (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (param_1[7] < 1) {\n        iVar9 = 1;\n      }\n      else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" (if "if") (parenthesized_expression "(param_1[7] < 1)" (( "(") (binary_expression "param_1[7] < 1" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        iVar9 = 1;\n      }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" (else "else") (compound_statement "{\n        iVar18 = 0;\n        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);\n        local_2c = &WORD_0001e240;\n        do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);\n      }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(PTR_LAB_003a8be8 + 0x4b04)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a8be8 + 0x4b04)" (( "(") (binary_expression "PTR_LAB_003a8be8 + 0x4b04" (identifier "PTR_LAB_003a8be8") (+ "+") (number_literal "0x4b04")) () ")")))) (; ";")) (expression_statement "local_2c = &WORD_0001e240;" (assignment_expression "local_2c = &WORD_0001e240" (identifier "local_2c") (= "=") (pointer_expression "&WORD_0001e240" (& "&") (identifier "WORD_0001e240"))) (; ";")) (do_statement "do {\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        } while (iVar18 < param_1[7]);" (do "do") (compound_statement "{\n          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);\n          if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }\n          uVar2 = 0;\n          pbVar10 = pbVar3;\n          pbVar12 = pbVar7;\n          pwVar14 = (word *)param_1[8];\n          if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }\nLAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }\nLAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;\n          iVar18 = iVar18 + 1;\n          param_4 = param_4 + 2;\n        }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);" (assignment_expression "iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" (( "(") (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" (* "*") (cast_expression "(code *)PTR_ReadBlob_003a8dac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlob_003a8dac"))) () ")")) (argument_list "(param_1,param_4[1],pbVar7)" (( "(") (identifier "param_1") (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "pbVar7") () ")")))) (; ";")) (if_statement "if (iVar9 != param_4[1]) {\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }" (if "if") (parenthesized_expression "(iVar9 != param_4[1])" (( "(") (binary_expression "iVar9 != param_4[1]" (identifier "iVar9") (!= "!=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\nLAB_00295c40:\n            iVar9 = 0;\n            break;\n          }" ({ "{") (labeled_statement "LAB_00295c40:\n            iVar9 = 0;" (statement_identifier "LAB_00295c40") (: ":") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" (identifier "pbVar10") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar12 = pbVar7;" (assignment_expression "pbVar12 = pbVar7" (identifier "pbVar12") (= "=") (identifier "pbVar7")) (; ";")) (expression_statement "pwVar14 = (word *)param_1[8];" (assignment_expression "pwVar14 = (word *)param_1[8]" (identifier "pwVar14") (= "=") (cast_expression "(word *)param_1[8]" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if ((word *)param_1[8] == (word *)0x1) {\n            pwVar14 = local_2c;\n          }" (if "if") (parenthesized_expression "((word *)param_1[8] == (word *)0x1)" (( "(") (binary_expression "(word *)param_1[8] == (word *)0x1" (cast_expression "(word *)param_1[8]" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (== "==") (cast_expression "(word *)0x1" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n            pwVar14 = local_2c;\n          }" ({ "{") (expression_statement "pwVar14 = local_2c;" (assignment_expression "pwVar14 = local_2c" (identifier "pwVar14") (= "=") (identifier "local_2c")) (; ";")) (} "}"))) (labeled_statement "LAB_00295a28:\n          if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" (statement_identifier "LAB_00295a28") (: ":") (if_statement "if (1 < iVar9) {\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" (if "if") (parenthesized_expression "(1 < iVar9)" (( "(") (binary_expression "1 < iVar9" (number_literal "1") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n            while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }\n            bVar1 = pbVar12[1];\n            iVar9 = iVar9 + -2;\n            pbVar12 = pbVar12 + 2;\n            iVar15 = 0;\n            pbVar11 = pbVar10;\n            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;\n            do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );\n          }" ({ "{") (while_statement "while( true ) {\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              iVar15 = iVar9 + -1;\n              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n              uVar16 = (uint)*pbVar12;\n              pbVar11 = pbVar12 + 1;\n              if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }\n              if (0x80 < uVar16) break;\n              pbVar12 = pbVar11 + uVar16 + 1;\n              iVar9 = iVar15;\n              while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }\n              if (iVar9 < 2) goto LAB_00295ad8;\n            }" ({ "{") (expression_statement "iVar15 = iVar9 + -1;" (assignment_expression "iVar15 = iVar9 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)uVar2)" (( "(") (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";"))) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" (identifier "uVar16") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 == 0x80) {\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }" (if "if") (parenthesized_expression "(uVar16 == 0x80)" (( "(") (binary_expression "uVar16 == 0x80" (identifier "uVar16") (== "==") (number_literal "0x80")) () ")")) (compound_statement "{\n                pbVar17 = pbVar12 + iVar15;\n                do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);\n              }" ({ "{") (expression_statement "pbVar17 = pbVar12 + iVar15;" (assignment_expression "pbVar17 = pbVar12 + iVar15" (identifier "pbVar17") (= "=") (binary_expression "pbVar12 + iVar15" (identifier "pbVar12") (+ "+") (identifier "iVar15"))) (; ";")) (do_statement "do {\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                } while (uVar16 == 0x80);" (do "do") (compound_statement "{\n                  pbVar12 = pbVar11;\n                  iVar9 = iVar15;\n                  if (pbVar17 == pbVar12) goto LAB_00295c40;\n                  pbVar11 = pbVar12 + 1;\n                  uVar16 = (uint)*pbVar12;\n                  iVar15 = iVar9 + -1;\n                }" ({ "{") (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" (identifier "pbVar12") (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "iVar9 = iVar15;" (assignment_expression "iVar9 = iVar15" (identifier "iVar9") (= "=") (identifier "iVar15")) (; ";")) (if_statement "if (pbVar17 == pbVar12) goto LAB_00295c40;" (if "if") (parenthesized_expression "(pbVar17 == pbVar12)" (( "(") (binary_expression "pbVar17 == pbVar12" (identifier "pbVar17") (== "==") (identifier "pbVar12")) () ")")) (goto_statement "goto LAB_00295c40;" (goto "goto") (statement_identifier "LAB_00295c40") (; ";"))) (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" (identifier "uVar16") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "iVar15 = iVar9 + -1;" (assignment_expression "iVar15 = iVar9 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 == 0x80)" (( "(") (binary_expression "uVar16 == 0x80" (identifier "uVar16") (== "==") (number_literal "0x80")) () ")")) (; ";")) (} "}"))) (if_statement "if (0x80 < uVar16) break;" (if "if") (parenthesized_expression "(0x80 < uVar16)" (( "(") (binary_expression "0x80 < uVar16" (number_literal "0x80") (< "<") (identifier "uVar16")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar12 = pbVar11 + uVar16 + 1;" (assignment_expression "pbVar12 = pbVar11 + uVar16 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar11 + uVar16 + 1" (binary_expression "pbVar11 + uVar16" (identifier "pbVar11") (+ "+") (identifier "uVar16")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = iVar15;" (assignment_expression "iVar9 = iVar15" (identifier "iVar9") (= "=") (identifier "iVar15")) (; ";")) (while_statement "while( true ) {\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                iVar9 = iVar9 + -1;\n                if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }\n                if (pbVar11 + 1 == pbVar12) break;\n                pbVar11 = pbVar11 + 1;\n                if (iVar9 == 0) goto LAB_00295ad8;\n              }" ({ "{") (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pwVar14 == (word *)0x2) {\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }\n                else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" (if "if") (parenthesized_expression "(pwVar14 == (word *)0x2)" (( "(") (binary_expression "pwVar14 == (word *)0x2" (identifier "pwVar14") (== "==") (cast_expression "(word *)0x2" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 4;\n                  *pbVar10 = bVar1 >> 6;\n                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);\n                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                  pbVar10[3] = bVar1 & 3;\n                  pbVar10 = pbVar10 + 4;\n                }" ({ "{") (if_statement "if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 3))" (( "(") (binary_expression "(int)uVar19 <= (int)(uVar2 + 3)" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)(uVar2 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 + 3)" (( "(") (binary_expression "uVar2 + 3" (identifier "uVar2") (+ "+") (number_literal "3")) () ")")))) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";"))) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" (identifier "bVar1") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "uVar2 = uVar2 + 4;" (assignment_expression "uVar2 = uVar2 + 4" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 4" (identifier "uVar2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*pbVar10 = bVar1 >> 6;" (assignment_expression "*pbVar10 = bVar1 >> 6" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "bVar1 >> 6" (identifier "bVar1") (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);" (assignment_expression "pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(byte)(((uint)bVar1 << 0x1a) >> 0x1e)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)bVar1 << 0x1a) >> 0x1e)" (( "(") (binary_expression "((uint)bVar1 << 0x1a) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1a)" (( "(") (binary_expression "(uint)bVar1 << 0x1a" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (<< "<<") (number_literal "0x1a")) () ")")) (>> ">>") (number_literal "0x1e")) () ")")))) (; ";")) (expression_statement "pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" (( "(") (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" (( "(") (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (<< "<<") (number_literal "0x1c")) () ")")) (>> ">>") (number_literal "0x1e")) () ")")))) (; ";")) (expression_statement "pbVar10[3] = bVar1 & 3;" (assignment_expression "pbVar10[3] = bVar1 & 3" (subscript_expression "pbVar10[3]" (identifier "pbVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 4" (identifier "pbVar10") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" (else "else") (if_statement "if (pwVar14 == (word *)0x4) {\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }\n                else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" (if "if") (parenthesized_expression "(pwVar14 == (word *)0x4)" (( "(") (binary_expression "pwVar14 == (word *)0x4" (identifier "pwVar14") (== "==") (cast_expression "(word *)0x4" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;\n                  bVar1 = *pbVar11;\n                  uVar2 = uVar2 + 2;\n                  *pbVar10 = bVar1 >> 4;\n                  pbVar10[1] = bVar1 & 0xf;\n                  pbVar10 = pbVar10 + 2;\n                }" ({ "{") (if_statement "if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 1))" (( "(") (binary_expression "(int)uVar19 <= (int)(uVar2 + 1)" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)(uVar2 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 + 1)" (( "(") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) () ")")))) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";"))) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" (identifier "bVar1") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*pbVar10 = bVar1 >> 4;" (assignment_expression "*pbVar10 = bVar1 >> 4" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "bVar1 >> 4" (identifier "bVar1") (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "pbVar10[1] = bVar1 & 0xf;" (assignment_expression "pbVar10[1] = bVar1 & 0xf" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "bVar1 & 0xf" (identifier "bVar1") (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" (else "else") (compound_statement "{\n                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;\n                  uVar2 = uVar2 + 1;\n                  *pbVar10 = *pbVar11;\n                  pbVar10 = pbVar10 + 1;\n                }" ({ "{") (if_statement "if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)uVar2)" (( "(") (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";"))) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar10 = *pbVar11;" (assignment_expression "*pbVar10 = *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")))))) (if_statement "if (pbVar11 + 1 == pbVar12) break;" (if "if") (parenthesized_expression "(pbVar11 + 1 == pbVar12)" (( "(") (binary_expression "pbVar11 + 1 == pbVar12" (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1")) (== "==") (identifier "pbVar12")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_00295ad8;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";"))) (} "}"))) (if_statement "if (iVar9 < 2) goto LAB_00295ad8;" (if "if") (parenthesized_expression "(iVar9 < 2)" (( "(") (binary_expression "iVar9 < 2" (identifier "iVar9") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";"))) (} "}"))) (expression_statement "bVar1 = pbVar12[1];" (assignment_expression "bVar1 = pbVar12[1]" (identifier "bVar1") (= "=") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar9 = iVar9 + -2;" (assignment_expression "iVar9 = iVar9 + -2" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -2" (identifier "iVar9") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 2" (identifier "pbVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" (identifier "pbVar11") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (pwVar14 == (word *)0x2) goto LAB_00295bcc;" (if "if") (parenthesized_expression "(pwVar14 == (word *)0x2)" (( "(") (binary_expression "pwVar14 == (word *)0x2" (identifier "pwVar14") (== "==") (cast_expression "(word *)0x2" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (goto_statement "goto LAB_00295bcc;" (goto "goto") (statement_identifier "LAB_00295bcc") (; ";"))) (do_statement "do {\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            } while( true );" (do "do") (compound_statement "{\n              if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }\n              while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }\n            }" ({ "{") (if_statement "if (pwVar14 == (word *)0x4) {\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }\n              else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" (if "if") (parenthesized_expression "(pwVar14 == (word *)0x4)" (( "(") (binary_expression "pwVar14 == (word *)0x4" (identifier "pwVar14") (== "==") (cast_expression "(word *)0x4" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n                if ((int)uVar19 <= (int)(uVar2 + 1)) break;\n                *pbVar10 = bVar1 >> 4;\n                uVar2 = uVar2 + 2;\n                pbVar10[1] = bVar1 & 0xf;\n                pbVar10 = pbVar10 + 2;\n              }" ({ "{") (if_statement "if ((int)uVar19 <= (int)(uVar2 + 1)) break;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 1))" (( "(") (binary_expression "(int)uVar19 <= (int)(uVar2 + 1)" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)(uVar2 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 + 1)" (( "(") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*pbVar10 = bVar1 >> 4;" (assignment_expression "*pbVar10 = bVar1 >> 4" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "bVar1 >> 4" (identifier "bVar1") (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pbVar10[1] = bVar1 & 0xf;" (assignment_expression "pbVar10[1] = bVar1 & 0xf" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "bVar1 & 0xf" (identifier "bVar1") (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" (else "else") (compound_statement "{\n                if ((int)uVar19 <= (int)uVar2) break;\n                *pbVar10 = bVar1;\n                uVar2 = uVar2 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" ({ "{") (if_statement "if ((int)uVar19 <= (int)uVar2) break;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)uVar2)" (( "(") (binary_expression "(int)uVar19 <= (int)uVar2" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*pbVar10 = bVar1;" (assignment_expression "*pbVar10 = bVar1" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (while_statement "while( true ) {\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                iVar15 = iVar15 + 1;\n                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;\n                pbVar11 = pbVar10;\n                if (pwVar14 != (word *)0x2) break;\nLAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;\n                *pbVar11 = bVar1 >> 6;\n                pbVar10 = pbVar11 + 4;\n                pbVar11[1] = bVar1 >> 4 & 3;\n                uVar2 = uVar2 + 4;\n                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);\n                pbVar11[3] = bVar1 & 3;\n              }" ({ "{") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;" (if "if") (parenthesized_expression "(iVar15 == 0x101 - uVar16)" (( "(") (binary_expression "iVar15 == 0x101 - uVar16" (identifier "iVar15") (== "==") (binary_expression "0x101 - uVar16" (number_literal "0x101") (- "-") (identifier "uVar16"))) () ")")) (goto_statement "goto LAB_00295a28;" (goto "goto") (statement_identifier "LAB_00295a28") (; ";"))) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" (identifier "pbVar11") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (pwVar14 != (word *)0x2) break;" (if "if") (parenthesized_expression "(pwVar14 != (word *)0x2)" (( "(") (binary_expression "pwVar14 != (word *)0x2" (identifier "pwVar14") (!= "!=") (cast_expression "(word *)0x2" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00295bcc:\n                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" (statement_identifier "LAB_00295bcc") (: ":") (if_statement "if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;" (if "if") (parenthesized_expression "((int)uVar19 <= (int)(uVar2 + 3))" (( "(") (binary_expression "(int)uVar19 <= (int)(uVar2 + 3)" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (<= "<=") (cast_expression "(int)(uVar2 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 + 3)" (( "(") (binary_expression "uVar2 + 3" (identifier "uVar2") (+ "+") (number_literal "3")) () ")")))) () ")")) (goto_statement "goto LAB_00295ad8;" (goto "goto") (statement_identifier "LAB_00295ad8") (; ";")))) (expression_statement "*pbVar11 = bVar1 >> 6;" (assignment_expression "*pbVar11 = bVar1 >> 6" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (binary_expression "bVar1 >> 6" (identifier "bVar1") (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "pbVar10 = pbVar11 + 4;" (assignment_expression "pbVar10 = pbVar11 + 4" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + 4" (identifier "pbVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pbVar11[1] = bVar1 >> 4 & 3;" (assignment_expression "pbVar11[1] = bVar1 >> 4 & 3" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "bVar1 >> 4 & 3" (binary_expression "bVar1 >> 4" (identifier "bVar1") (>> ">>") (number_literal "4")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar2 = uVar2 + 4;" (assignment_expression "uVar2 = uVar2 + 4" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 4" (identifier "uVar2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);" (assignment_expression "pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (call_expression "(byte)(((uint)bVar1 << 0x1c) >> 0x1e)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)bVar1 << 0x1c) >> 0x1e)" (( "(") (binary_expression "((uint)bVar1 << 0x1c) >> 0x1e" (parenthesized_expression "((uint)bVar1 << 0x1c)" (( "(") (binary_expression "(uint)bVar1 << 0x1c" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (<< "<<") (number_literal "0x1c")) () ")")) (>> ">>") (number_literal "0x1e")) () ")")))) (; ";")) (expression_statement "pbVar11[3] = bVar1 & 3;" (assignment_expression "pbVar11[3] = bVar1 & 3" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_00295ad8:\n          if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;" (statement_identifier "LAB_00295ad8") (: ":") (if_statement "if ((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))\n          goto LAB_00295c40;" (if "if") (parenthesized_expression "((uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))" (( "(") (binary_expression "(uVar19 != uVar2) ||\n             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0)" (parenthesized_expression "(uVar19 != uVar2)" (( "(") (binary_expression "uVar19 != uVar2" (identifier "uVar19") (!= "!=") (identifier "uVar2")) () ")")) (|| "||") (parenthesized_expression "(iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0)" (( "(") (comma_expression "iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0" (assignment_expression "iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" (identifier "iVar9") (= "=") (call_expression "(*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(param_1,*param_2,iVar18,param_3,pbVar3,param_5)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (identifier "iVar18") (, ",") (identifier "param_3") (, ",") (identifier "pbVar3") (, ",") (identifier "param_5") () ")")))) (, ",") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00295c40;" (goto "goto") (statement_identifier "LAB_00295c40") (; ";")))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" (identifier "param_4") (= "=") (binary_expression "param_4 + 2" (identifier "param_4") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < param_1[7])" (( "(") (binary_expression "iVar18 < param_1[7]" (identifier "iVar18") (< "<") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(pbVar7)" (( "(") (identifier "pbVar7") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")"))) (; ";")) (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "uVar13 = 0x4a1;" (assignment_expression "uVar13 = 0x4a1" (identifier "uVar13") (= "=") (number_literal "0x4a1")) (; ";")) (expression_statement "puVar6 = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "puVar6 = PTR_LAB_003a88e0 + 0x16f8" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x16f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x16f8"))) (; ";")) (} "}")))) (labeled_statement "LAB_002958b8:\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (statement_identifier "LAB_002958b8") (: ":") (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_003a8f20"))) () ")")) (argument_list "(param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,\n             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,\n             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (( "(") (identifier "param_5") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "0x14c0")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "0x1fc4")) (, ",") (identifier "uVar13") (, ",") (number_literal "400") (, ",") (identifier "puVar6") (, ",") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) 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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (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: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (break_statement)) (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: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (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: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (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))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) condition: (parenthesized_expression (true)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (number_literal)))))

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

{
  byte bVar1;
  uint uVar2;
  byte *pbVar3;
  int *piVar4;
  int *piVar5;
  undefined *puVar6;
  byte *pbVar7;
  code *pcVar8;
  int iVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  undefined4 uVar13;
  word *pwVar14;
  int iVar15;
  uint uVar16;
  byte *pbVar17;
  int iVar18;
  uint uVar19;
  word *local_2c;
  
  if (param_1[0xcd4] != 0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x10,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,0x488,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x154c);
  }
  uVar2 = param_1[8];
  uVar19 = param_1[6];
  if (uVar2 == 1) {
    uVar19 = uVar19 + 7 >> 3;
    if ((*param_1 != 2) || ((uint)param_1[9] < 0x101)) goto LAB_00295804;
LAB_0029590c:
    uVar19 = uVar19 << 1;
    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);
  }
  else {
    if ((*param_1 == 2) && (0x100 < (uint)param_1[9])) goto LAB_0029590c;
    if (uVar2 < 0x11) {
      if (8 < uVar2) goto LAB_0029590c;
    }
    else {
      uVar19 = uVar19 << 2;
    }
LAB_00295804:
    pbVar3 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar19,1);
  }
  if (pbVar3 == (byte *)0x0) {
    uVar13 = 0x48f;
    puVar6 = PTR_LAB_003a88e0 + 0x16f8;
  }
  else {
    if (param_1[7] < 1) {
      uVar2 = 0;
    }
    else {
      uVar2 = 0;
      piVar4 = param_4;
      do {
        piVar5 = piVar4 + 2;
        if ((0 < *piVar4) || ((*piVar4 == 0 && (uVar2 < (uint)piVar4[1])))) {
          uVar2 = piVar4[1];
        }
        piVar4 = piVar5;
      } while (param_4 + param_1[7] * 2 != piVar5);
      if (uVar19 + 0x800 < uVar2) {
        (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
        uVar13 = 0x499;
        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1570;
        goto LAB_002958b8;
      }
    }
    pbVar7 = (byte *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(uVar2,1);
    if (pbVar7 != (byte *)0x0) {
      (*(code *)PTR_memset_003a96d4)(pbVar7,0,uVar2);
      if (param_1[7] < 1) {
        iVar9 = 1;
      }
      else {
        iVar18 = 0;
        pcVar8 = (code *)(PTR_LAB_003a8be8 + 0x4b04);
        local_2c = &WORD_0001e240;
        do {
          iVar9 = (*(code *)PTR_ReadBlob_003a8dac)(param_1,param_4[1],pbVar7);
          if (iVar9 != param_4[1]) {
LAB_00295c40:
            iVar9 = 0;
            break;
          }
          uVar2 = 0;
          pbVar10 = pbVar3;
          pbVar12 = pbVar7;
          pwVar14 = (word *)param_1[8];
          if ((word *)param_1[8] == (word *)0x1) {
            pwVar14 = local_2c;
          }
LAB_00295a28:
          if (1 < iVar9) {
            while( true ) {
              iVar15 = iVar9 + -1;
              if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;
              uVar16 = (uint)*pbVar12;
              pbVar11 = pbVar12 + 1;
              if (uVar16 == 0x80) {
                pbVar17 = pbVar12 + iVar15;
                do {
                  pbVar12 = pbVar11;
                  iVar9 = iVar15;
                  if (pbVar17 == pbVar12) goto LAB_00295c40;
                  pbVar11 = pbVar12 + 1;
                  uVar16 = (uint)*pbVar12;
                  iVar15 = iVar9 + -1;
                } while (uVar16 == 0x80);
              }
              if (0x80 < uVar16) break;
              pbVar12 = pbVar11 + uVar16 + 1;
              iVar9 = iVar15;
              while( true ) {
                iVar9 = iVar9 + -1;
                if (pwVar14 == (word *)0x2) {
                  if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;
                  bVar1 = *pbVar11;
                  uVar2 = uVar2 + 4;
                  *pbVar10 = bVar1 >> 6;
                  pbVar10[1] = (byte)(((uint)bVar1 << 0x1a) >> 0x1e);
                  pbVar10[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);
                  pbVar10[3] = bVar1 & 3;
                  pbVar10 = pbVar10 + 4;
                }
                else if (pwVar14 == (word *)0x4) {
                  if ((int)uVar19 <= (int)(uVar2 + 1)) goto LAB_00295ad8;
                  bVar1 = *pbVar11;
                  uVar2 = uVar2 + 2;
                  *pbVar10 = bVar1 >> 4;
                  pbVar10[1] = bVar1 & 0xf;
                  pbVar10 = pbVar10 + 2;
                }
                else {
                  if ((int)uVar19 <= (int)uVar2) goto LAB_00295ad8;
                  uVar2 = uVar2 + 1;
                  *pbVar10 = *pbVar11;
                  pbVar10 = pbVar10 + 1;
                }
                if (pbVar11 + 1 == pbVar12) break;
                pbVar11 = pbVar11 + 1;
                if (iVar9 == 0) goto LAB_00295ad8;
              }
              if (iVar9 < 2) goto LAB_00295ad8;
            }
            bVar1 = pbVar12[1];
            iVar9 = iVar9 + -2;
            pbVar12 = pbVar12 + 2;
            iVar15 = 0;
            pbVar11 = pbVar10;
            if (pwVar14 == (word *)0x2) goto LAB_00295bcc;
            do {
              if (pwVar14 == (word *)0x4) {
                if ((int)uVar19 <= (int)(uVar2 + 1)) break;
                *pbVar10 = bVar1 >> 4;
                uVar2 = uVar2 + 2;
                pbVar10[1] = bVar1 & 0xf;
                pbVar10 = pbVar10 + 2;
              }
              else {
                if ((int)uVar19 <= (int)uVar2) break;
                *pbVar10 = bVar1;
                uVar2 = uVar2 + 1;
                pbVar10 = pbVar10 + 1;
              }
              while( true ) {
                iVar15 = iVar15 + 1;
                if (iVar15 == 0x101 - uVar16) goto LAB_00295a28;
                pbVar11 = pbVar10;
                if (pwVar14 != (word *)0x2) break;
LAB_00295bcc:
                if ((int)uVar19 <= (int)(uVar2 + 3)) goto LAB_00295ad8;
                *pbVar11 = bVar1 >> 6;
                pbVar10 = pbVar11 + 4;
                pbVar11[1] = bVar1 >> 4 & 3;
                uVar2 = uVar2 + 4;
                pbVar11[2] = (byte)(((uint)bVar1 << 0x1c) >> 0x1e);
                pbVar11[3] = bVar1 & 3;
              }
            } while( true );
          }
LAB_00295ad8:
          if ((uVar19 != uVar2) ||
             (iVar9 = (*pcVar8)(param_1,*param_2,iVar18,param_3,pbVar3,param_5), iVar9 == 0))
          goto LAB_00295c40;
          iVar18 = iVar18 + 1;
          param_4 = param_4 + 2;
        } while (iVar18 < param_1[7]);
      }
      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar7);
      (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
      return iVar9;
    }
    (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pbVar3);
    uVar13 = 0x4a1;
    puVar6 = PTR_LAB_003a88e0 + 0x16f8;
  }
LAB_002958b8:
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (param_5,PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x14c0,
             PTR_s_pixels_3_def_____currentfile_byt_003a894c + 0x1fc4,uVar13,400,puVar6,
             PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);
  return 0;
}

